executeQuery
- ResultSet 객체의 값을 반환
- select구문을 수행할 때 사용
ExecuteUpdate
- Int 타입의 값을 반환
- insert / update / delete 구문을 수행할 때 사용
PreparedStatement
- Statement 클래스의 기능 향상
- 인자와 관련된 작업이 특화(매개변수)
- String형태의 SQL문을 SQL문으로 변환시켜서 DB 서버에 보내줌
🔥 Insert
public boolean insert(String id, String name, int age) {
String sql = " insert into user(id, name, age, joindate) "
+" values(?, ?, ?, now()) ";
Connection conn = null;
PrepareStatement psmt = null;
int count = 0;
try {
conn = DBConnection.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, id);
psmt.setString(2, name);
psmt.setInt(3, age);
count = psmt.executeUpdate();
System.out.println("성공적으로 추가되었습니다");
} catch (SQLException e) {
System.out.println("추가되지 않았습니다");
e.printStackTrace();
} finally {
DBClose.close(conn, psmt, null);
}
return count > 0;
}
🔥 Select
public UserDto search(String id) {
String sql = " select id, name, age, joindate "
+ " from user "
+ " where id = ? ";
Connection conn = null;
PrepareStatement = psmt = null;
ResultSet rs = null;
UserDto user = null;
try {
conn = DBConnection.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, id);
rs = psmt.executeQuery();
if(rs.next()) {
String _id = rs.getString(1);
String _name = rs.getNString(2);
int _age = rs.getInt(3);
String _joindate = rs.getString(4);
user = new UserDto(_id, _name, _age, _joindate);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBClose.close(conn, psmt, rs);
}
return user;
}
public List<UserDto> select() {
String sql = " select id, name, age, joindate "
+ " from user ";
Connection conn = null;
PrepareStatement psmt = null;
ResultSet rs = null;
List<UserDto> list = new ArrayList<>();
try {
conn = DBConnection.getConnection();
psmt = conn.prepareStatement(sql);
rs = psmt.executeQuery();
while(rs.next()) {
String _id = rs.getString(1);
String _name = rs.getString(2);
int _age = rs.getInt(3);
String _joindate = rs.getString(4);
UserDto user = new UserDto(_id, _name, _age, _joindate);
list.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBClose.close(conn, psmt, rs);
}
return list;
}
🔥 Update
public boolean update(String id, String name, int age) {
String sql = " update user "
+ " set name = ?, age = ? "
+ " where id = ? ";
Connection conn = null;
PrepareStatement psmt = null;
int count = 0;
try {
conn = DBConnection.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, updateName);
psmt.setInt(2, updateAge);
psmt.setString(3, id);
count = psmt.executeUpdate();
} catch (SQLException e) {
System.out.println("업데이트되지 않았습니다.");
e.printStackTrace();
} finally {
DBClose.close(conn, psmt, null);
}
return count > 0?true:false;
}
🔥 Delete
public boolean delete(String id) {
String sql = " delete from user "
+ " where id= ? ";
Connection conn = null;
PreparedStatement psmt = null;
int count = 0;
try {
conn = DBConnection.getConnection();
System.out.println("1/3 delete success");
psmt = conn.prepareStatement(sql);
psmt.setString(1, id);
System.out.println("2/3 delete success");
count = psmt.executeUpdate();
System.out.println("3/3 delete success");
} catch (SQLException e) {
System.out.println("delete fail");
e.printStackTrace();
} finally {
DBClose.close(conn, psmt, null);
}
return count > 0?true:false;
}