- 2019/08/06 SQL을 jdbc로 연동2019년 08월 06일
- 조별하
- 작성자
- 2019.08.06.: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
\lib2. 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자료형으로 변수값을 받아와 출력해 준다데이터를 조회하는데 성공 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)