Back to the DataBase

JAVA 에서 SQL 문으로 DB 이용하기

Backcoder 2022. 7. 18. 15:46

[ 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번 레코드로 이동
( 조회값 하나만 뽑으면 될 거 같으면, next1번 레코드로 이동해서 그 레코드만 뽑으면 된다. )
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 - 엔티티 객체 대상 )