[ JAVA 에서 SQL 문 사용해서 DB 접근하기 ] 
< 기본 Connection / Statement 세팅 > 
Connection con 
Statement st = con.createStatement( ); // 저장 가능한 비어있는 statement 객체 생성
- 이것보단 보통 PreparedStatement 를 사용한다.  ( PreparedStatement 글 참고 )
< insert문, update문 , delete문 사용하기>  
=> insert / update /delete문 => 모두 executeUpdate 로 실행 
String query2 = "insert into board_entity" 
+ " values( 11, 'Java SQL', 'with Statement and Connection and Execute update')"; 
st.executeUpdate(query2); 
String query3 = "update board_entity SET" 
+ " contents = 'updated by java SQL' where id = 11"; 
st.executeUpdate(query3); 
String query 4 = "delete from board_entity where id = 6";
st.executeUpdate(query4); 
< Select문 사용하기 > 
=> ResultSet => executeQuery 사용  
String query1 = "select * from member"; 
Statement st = con.createstatement(); 
ResultSet rs = st.executeQuery(query1); // ResultSet 에 select쿼리 실행 결과를 담음 
=> select문으로 뽑아낸 결과물 result set 이 next 가 있는 동안 가져오겠다 ( 반복문으로 뽑기 ) 
while( rs.next( ) ){ 
System.out.println( rs.getString("title") ); 
System.out.println( rs.get~ ); 
System.out.println( rs.get~ ); 
... 
} 
< ResultSet. get ~ ( ) > 
=> 각 데이터타입별 - 해당타입으로 가능 (getInt, getDouble, getDate)
++  모두 String 타입으로도 getString 가능 ( 알아서 String 으로 가져와줌! 만능 => " getString " ) 
rs.close( );  
// ResultSet 사용 했으면, 다른 쿼리문 사용하게끔 close 해주는게 좋다. 
String query4 = "Select title (조회값) from board_entity where contents ='out' "; 
ResultSet rs2 = st.executeQuery(query4); 
rs2.next( ); // 조회한 결과값의 1번 레코드로 이동 
( 조회값 하나만 뽑으면 될 거 같으면, next 로 1번 레코드로 이동해서 그 레코드만 뽑으면 된다. ) 
rs - 첫번째 데이터 직전 위치 
rs.next( ); 첫번째 데이터 위치 
System.out.println(rs2.getString("title"));
// 바로 select 한 대상 으로 뽑아도 되고
System.out.println(rs2.getString("조회값")); 
// 알리아스 사용해서 뽑아도 되고 
System.out.println(rs2.getString( 1 )); 
// Column인덱스 사용해서 뽑아도 된다. 
=> DML 쿼리문( select ~ delete ) 정도는 이렇게 자바에서도 
Connection / Statement / Execute / ResultSet 등을 활용해서 DB에 직접 접근해 사용할 수 있다.
이를 활용해서, JAVA 에서 서비스를 구현할 때, 
쿼리문을 사용해 직접 DB 에서 Data 를 가져오거나 조작하고 
서비스를 구현하는데 사용할 수 있을 것이다. 
이러한 기능을 간단하게 만들어서 스프링 프레임워크에서는 
JPQL ( Java Persistence Query Language ) 기능을 지원해 
더욱 간편하게 자바에서 쿼리문을 사용 할 수 있게 해준다. 
( SQL - DB테이블 대상 / JPQL - 엔티티 객체 대상 ) 
'Back to the DataBase' 카테고리의 다른 글
| DAO 잡다한 실수들 (0) | 2022.07.19 | 
|---|---|
| DAO DTO Main 3단 분업 (0) | 2022.07.19 | 
| JAVA => JDBC => MySQL DB 연동 (0) | 2022.07.18 | 
| Union합집합 / SubQuery 서브쿼리 / (0) | 2022.07.15 | 
| Foreign Key / CASCADE / 그리고 Constraint 제약조건들. (0) | 2022.07.15 |