JAVA 교육/Jdbc
2019/08/06 SQL을 jdbc로 연동
조별하
2019. 8. 6. 13:15
[전 수업] SQL문을 프로시저를 생성하여 사용해 보았다
[본 수업]프로시저를 생성하여 jdbc로 연동하여 사용해 보자
1. 오라클 DB서버 접근 정보
url : jdbc:oracle:thin:@localhost:1521:xe user : java0514 password : 1234 driver : oracle.jdbc.driver.OracleDriver |
※ 간편하게 찾기 위해 ojdbc6.jar 를 setup폴더에 복사
c:\oraclexe\app
\oracle
\product
\11.2.0
\server
\jdbc
\lib
2. java Build Path
Build Path->Configure Build Path->add external jars-> ojdbc6.jar추가
3. 변수 설정(Connection,preparedStatement,ResultSet)
Connection con= null; PreparedStatement pstmt = null; ResultSet rs=null; |
DB연결하는 변수 , SQL문 변환 변수, select 문 조회 변수를 미리 설정해 두자 |
4. try catch문 작성
try{ }catch(Exception e){System.out.println("실패!!");} finally{//자원반납 try{if(rs!=null){rs.close();}}catch(Exception e){} try{if(pstmt!=null){pstmt.close();}}catch(Exception e){} try{if(con!=null){con.close();}}catch(Exception e){} }; |
try catch 문으로 오류를 잡을수 있게 해주고 finally 에서 자원 반납을 해준다 (단, 자원반납을 해 줄 때에는 자원받은 순서 반대로 반납) |
5. 드라이버 로딩
Class.forName(driver); |
6. DB 연결
con=DriverManager.getConnection(url, user, password); System.out.println("오라클DB 서버연결 성공!!!"); |
DriverManager 클래스의 getConnection 메소드로 con 변수에 url, user, password를 받는다 |
7. SQL문 작성
StringBuilder sql= new StringBuilder(); String uname="박지성"; int kor=50,eng=60,mat=65; int tot=kor+eng+mat; int aver=tot/3; String addr="Suwon"; sql.append(" INSERT INTO sungjuk(sno,uname,kor,eng,mat,tot,aver,addr,wdate)"); sql.append(" VALUES (sungjuk_seq.nextval,?,?,?,?,?,?,?,sysdate)"); |
sql.append 로 SQL문을 넣어주고 그 SQL문에 변하는 값을 ?로 잡아주고, ?값을 다음에 셋팅해준다 |
8. SQL문 변환
pstmt= con.prepareStatement(sql.toString()); |
sql 문을 String값으로 변환은 해주고 연결되 DB와 호응 시켜 pstmt로 넣어준다 |
pstmt.setString(1, uname); pstmt.setInt(2, kor); pstmt.setInt(3, eng); pstmt.setInt(4, mat); pstmt.setInt(5, tot); pstmt.setInt(6,aver); pstmt.setString(7,addr); |
넣어준 다음 ? 의 순서대로 pstmt의 값을 위에서 변수에 할당해준 값을 setting 해 준다 |
9. SQL문 실행
int result= pstmt.executeUpdate(); if(result==0){ System.out.println("행추가 실패~~~!!"); }else{ System.out.println("행추가 성공~~~!!"); } |
들어가 줄이 0이면 실패 존재하면 성공 |
10. SELECT 문
(드라이버 로딩,DB연결까지 같은 과정)
StringBuilder sql= new StringBuilder(); sql.append(" SELECT sno,uname,kor,eng,mat,tot,aver,addr,wdate "); sql.append(" FROM sungjuk "); sql.append(" ORDER BY sno DESC"); |
select문 , insert문, update문, delete문 모두 StringBuilder sql에 넣는것은 같은 과정 |
if(rs.next()){ System.out.println("자료가 있으"); do{ System.out.print(rs.getInt("sno")+" "); System.out.print(rs.getString("uname")+" "); System.out.print(rs.getInt("kor")+" "); System.out.print(rs.getInt("eng")+" "); System.out.print(rs.getInt("mat")+" "); System.out.print(rs.getInt("tot")+" "); System.out.print(rs.getInt("aver")+" "); System.out.print(rs.getString("addr")+" "); System.out.print(rs.getString("wdate")+" "); System.out.println(); }while(rs.next()); }else{ System.out.println("자료가 없다아~~~!!"); } |
select 문을 조회 할때는 rs= pstmt.executeQuery() 로 넣어주고, if문으로 re에 다음 커서가 존재하면 re.get자료형으로 변수값을 받아와 출력해 준다 |