주말에 프로젝트 세팅부터 처음부터 다시 해보기!!!
@Repository
public class MemberJdbcRepository implements MemberRepository {
@Autowired
private DataSource dataSource;
@Override
public Member save(Member member) {
try {
Connection connection = dataSource.getConnection();
String sql = "insert into member(name, email, password) values(?, ?, ?);"; // ? : 변수로 처리
PreparedStatement preparedStatement = connection.preparedStatement(sql);
preparedStatement.setString(1, member.getName());
preparedStatement.setString(2, member.getEmail());
preparedStatement.executeQuery();
} catch(SQLException e) {
}
return member;
}
}
dataSource.getConnection()
으로 connection 얻고,
connection.preparedStatement(sql)
로 PreparedStatement를 생성한 후
setString()
, setLong()
으로 변수 세팅
추가, 수정의 경우: preparedStatement.executeUpdate()
조회의 경우: preparedStatement.executeQuery()
여러 데이터 조회
resultSet.next()
resultSet의 핵심 동작원리는 cursor이다.
while(resultSet.next()) { // resultset의 핵심 동작 원리?? => cursor
// 문자열과
Member member = new Member();
member.setId(resultSet.getLong("id"));
member.setName(resultSet.getString("name"));
member.setEmail(resultSet.getString("email"));
// member.setPassword(resultSet.getString("password"));
memberList.add(member);
connection.close();
}