[ java ] jdbc 연동 - 상태창, 연결확인
페이지 정보
작성자 웹지기 댓글 0건 조회 6,369회 작성일 20-12-23 11:03본문
jdbc 연결 상태 확인창 열기
- data source connections 열기
Window > Show view > other > data로검색(Data Source Explorer) > open
(콘솔창에 data source explorer 창이 뜸 - 마우스 우클릭으로 connect // disconnect )
Databae Connections > 마우스우클릭 > New > Oracle > 검색창 옆 톱니바퀴 >
Database 에서 Name/Type Oracle Thin Driver - System Version 11 선택
JAR List > ojdbc14.jar 삭제 > Add JAR/Zip > ojdbc6.jar > OK
경로 수정하지 않았다면 C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
Properties > General >
Database Instance Service Name > xe
Host > localhost
user name > hr
password > hr
save password 체크
프로젝트내에 sql 파일 작성
프로젝트 마우스 우클릭 > new > other > sql development
> sql file > file name : 원하는sql파일명 >
Database server type : Oracle_11
Connection profile name : new oracle
database name : xe
java jdbc 연동
1. jdbc 드라이버 동적 로딩
- Class.forName("orcle.jdbc.driver.OracleDriver");
2. 오류
1) 컴파일 오류
2) 런타임 오류
jdbc 오류 예외 처리 오류상태에서 마우스를 올려서 Surround with try/catch 를 클릭
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally { //이부분을 추가
}
이상태는 오류
라이브러리 불러오기
자바프로그젝트에서 마우스 우클릭 > Build Path > Configure Build Path > Libraries > Add External JARs >
C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6.jar 선택 > 적용
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "hr";
String password = "hr";
//2. 데이터베이스 연결객체( Connection ) 생성
Connection conn = DriverManager.getConnection(url, user, password);
jdbc 경로
data source explorer > database connections > New Oracle(Oracle v.~~~~~~~~~) 마우스 우클릭 > properties > Connection URL 복사
처리 상태 확인
Connection conn = null;
PreparedStatement pst = null;
try {
//1. jdbc 드라이버 동적 로딩
//jdbc 오류 예외 처리 오류상태에서 마우스를 올려서 Surround with try/catch 를 클릭Class.forName("oracle.jdbc.driver.OracleDriver");
Class.forName("oracle.jdbc.driver.OracleDriver");
//2. 데이터베이스 연결객체( Connection ) 생성
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "hr";
String password = "hr";
conn = DriverManager.getConnection(url, user, password);
//3. sql 구문 준비 객체( PreparedStatement ) 생성
//studentSeq.nextval : 시퀀스
//? : 바인드 변수
String sql = "";
sql = " INSERT INTO student VALUES (studentSeq.nextval, ?, ?, ?, ?) ";
pst = conn.prepareStatement(sql);
//4. 바인드 변수를 채운다.(바인드는 1부터 시작)
pst.setString(1,name);
pst.setInt(2, age);
pst.setString(3, phone);
pst.setString(4, email);
//5. sql문 실행하여 결과 처리
//executeUpdate : insert, delete, update ( 테이블의 변화가 생길때 사용되는 명령 )
int cnt = pst.executeUpdate();
if(cnt > 0) {
System.out.println("학생추가 성공");
} else {
System.out.println("학생추가 실패");
}
//} catch (ClassNotFoundException e) {
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pst.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
SELECT 구문에서 사용법
try {
//1. jdbc 드라이버 동적 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
//2. db 연결
//String url = "jdbc:oracle:thin:@localhost:1521:xe";
//String user = "hr";
//String password = "hr";
conn = DriverManager.getConnection(url, user, password);
//sql = " SELECT ROWNUM, A.* FROM student A";
//3. sql 구문 준비 객체( PreparedStatement ) 생성
pst = conn.prepareStatement(sql);
//4. sql문을 실행하여 결과 처리
ResultSet rs = pst.executeQuery();
while(rs.next()) {
int row = rs.getRow();
//student_num = rs.getInt("student_num");
student_num = rs.getInt(2);
//name = rs.getString("name");
name = rs.getString(3);
//age = rs.getInt("age");
age = rs.getInt(4);
//phone = rs.getString("phone");
phone = rs.getString(5);
//email = rs.getString("email");
email = rs.getString(6);
System.out.println("--------------------------------------------------");
System.out.print("num :"+row+"\t");
System.out.print("학생번호 : "+student_num+"\t");
System.out.print("학생이름 : "+name+"\t");
System.out.print("학생나이 : "+age+"\t");
System.out.print("학생전화번호 : "+phone+"\t");
System.out.print("학생이메일 : "+email);
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pst.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
INSERT UPDATE DELETE 문
try {
//1. jdbc 드라이버 동적 로딩
//jdbc 오류 예외 처리 오류상태에서 마우스를 올려서 Surround with try/catch 를 클릭
Class.forName("oracle.jdbc.driver.OracleDriver");
//2. 데이터베이스 연결객체( Connection ) 생성
//String url = "jdbc:oracle:thin:@localhost:1521:xe";
//String user = "hr";
//String password = "hr";
conn = DriverManager.getConnection(url, user, password);
//3. sql 구문 준비 객체( PreparedStatement ) 생성
//studentSeq.nextval : 시퀀스
//? : 바인드 변수
sql = " INSERT INTO student VALUES (studentSeq.nextval, ?, ?, ?, ?) ";
pst = conn.prepareStatement(sql);
//4. 바인드 변수를 채운다.
pst.setString(1,name);
pst.setInt(2, age);
pst.setString(3, phone);
pst.setString(4, email);
//5. sql문 실행하여 결과 처리
//executeUpdate : insert, delete, update ( 테이블의 변화가 생길때 사용되는 명령 )
int cnt = pst.executeUpdate();
if(cnt > 0) {
System.out.println("학생추가 성공");
} else {
System.out.println("학생추가 실패");
}
//} catch (ClassNotFoundException e) {
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pst.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
댓글목록
등록된 댓글이 없습니다.