728x90
SELECT문 => executeQuery() 실행
UPDATE / INSERT / DELETE => executeUpdate() 실행
728x90
SELELCT문
public ArrayList<Member> selectByUserName(String keyword) {
// 0) 필요한 변수들 셋팅
ArrayList<Member> list = new ArrayList<>();
Connection conn = null;
Statement stmt = null;
ResultSet rset = null;
// 실행할 SQL문
// SELECT * FROM MEMBER WHERE USERNAME LIKE '%xxx%';
String sql = "SELECT * FROM MEMBER WHERE USERNAME LIKE '%"+keyword+"%'";
try {
// 1) JDBC Driver 등록
Class.forName("oracle.jdbc.driver.OracleDriver");
// 2) Connection 객체 생성
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","JDBC","JDBC");
// 3) Statement 객체 생성
stmt = conn.createStatement();
// 4,5) SQL문(SELECT)을 전달해서 실행 후 결과 받기
rset = stmt.executeQuery(sql);
// 6_1)
while(rset.next()){
list.add(new Member(rset.getInt("USERNO")
, rset.getString("USERID")
, rset.getString("USERPWD")
, rset.getString("USERNAME")
, rset.getString("GENDER")
, rset.getInt("AGE")
, rset.getString("EMAIL")
, rset.getString("PHONE")
, rset.getString("ADDRESS")
, rset.getString("HOBBY")
, rset.getDate("ENROLLDATE")));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
// 7) 다 쓴 JDBC용 객체를 반납 ( 생성된 순서의 역순으로)
rset.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 8)
return list;
}
DML문
public int updateMember(Member m) {
// UPDATE문 => 처리된 행의 개수(int) => 트랜잭션 처리
// 0) 필요한 변수들 먼저 셋팅
int result = 0; // 처리된 결과(행 수)를 담아줄 변수
Connection conn = null; // 접속된 DB의 연결정보를 담는 변수
Statement stmt = null; // SQL문 실행 후 결과를 받기 위한 변수
// 실행할 SQL문
// UPDATE MEMBER SET USERPWD = 'XXX', EMIL = 'XXX', PHONE = 'XXX', ADDRESS = 'XXXX' WHERE USERID = 사용자가 입력한 아이디 m.getUserId();
String sql = "UPDATE MEMBER "
+ "SET USERPWD = '" + m.getUserPwd() + "',"
+ "EMAIL = '" + m.getEmail()+ "',"
+ "PHONE = '" + m.getPhone() + "',"
+ "ADDRESS = '" + m.getAddress()+ "'"
+ "WHERE USERID = '" + m.getUserId()+ "'";
try {
// 1)
Class.forName("oracle.jdbc.driver.OracleDriver");
//2)
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "JDBC","JDBC");
// 3)
stmt = conn.createStatement();
// 4,5)
result = stmt.executeUpdate(sql);
// 6_2) 트랜잭션 처리
if(result > 0 ) { // DML 처리가 된 row가 1개 이상 있다
conn.commit();
}else { // 없음
conn.rollback();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
// 7)
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//8)
return result;
}
728x90
'Programming > JAVA' 카테고리의 다른 글
JDBCTemplate (0) | 2024.01.13 |
---|---|
JDBC 처리순서 / 오라클 oracle 연동 (0) | 2024.01.13 |
MVC 패턴 / ojdbc6.jar / Statement 와 PreparedStatement / ClassNotFoundException (0) | 2024.01.13 |
[JAVA] BufferedReader / BufferedWriter / try ~ with ~ resource / FileOuputStream / ObjectOutPutStream (0) | 2024.01.12 |
[JAVA] IO(Input & Output, 입출력) / 스트림(Stream) (0) | 2024.01.12 |