DB - JDBC
◆ JDBC(Java Database Connectivity)
자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다.
데이터베이스에서 자료를 쿼리(Query)하거나 업데이트하는 방법을 제공한다.
1) java.sql.Driver : DB와 연결하는 Driver class를 만들 때 반드시 implements 해야 하는 interface로 JDBC 드라이버의 중심이 되는 Interface 입니다.
2) java.sql.Connection : 특정 데이터베이스와 연결정보를 가지는 Interface 입니다. DriverManager 로부터 Connection 객체를 가져옵니다.
3) java.sql.Statement : SQL query문을 DB에 전송하는 방법을 정의한 Interface 입니다. Connection을 통해 가져옵니다.
4) java.sql.PreparedStatement : Statement의 하위 Interface 입니다. SQL문을 미리 컴파일 하여 실행 속도를 높입니다.
JDBC는 3가지 기능을 표준 인터페이스로 정의하여 제공한다.
- java.sql.Connection - 연결
- java.sql.Statement - SQL을 담은 내용
- java.sql.ResultSet - SQL 요청 응답
- DB 서버 접속을 위해 JDBC 드라이버를 로드합니다.
- DB 접속 정보와 DriverManager.getConnection() Method를 통해 DB Connection 객체를 얻습니다.
- Connection 객체로 부터 쿼리를 수행하기 위한 PreparedStatement 객체를 받습니다.
- executeQuery를 수행하여 그 결과로 ResultSet 객체를 받아서 데이터를 처리합니다.
- 처리가 완료되면 처리에 사용된 리소스들을 close하여 반환합니다.
◆ JDBC 사용법
1. 환경설정
-
DBMS 서버 설치 : MySQL, Oracle, DB2 등
-
JDBC Driver 설치 : 각 DBMS 페이지에서 제공하는 파일을 다운받기 (*.jar 파일)
참고 블로그 : byungmin.tistory.com
-
JDBC API : JDK에 포함
*JDBC Driver 설치하기
1.오라클의 설치된 경로에 JDBC 라이브러리가 있다.
경로 : app{사용자계정}\product\11.2.0\dbhome_3\jdbc\lib
파일 : ojdbc6_g.jar
2.이를 복사하여 “JDK > JRE > Lib > ext” 경로에 복사한다.
Java가 설치된 경로는 이클립스에서 아래와 같이 확인 할 수 있다.
Class.forName(“oracle.jdbc.driver.OracleDriver”);
2. 자바 쿼리문 실행
public Integer memRegist(MemberDTO mDTO) {
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "사용자 계정 이름";
String password = "사용자 계정 암호";
Connection conn = null;
PreparedStatement pstmt = null;
Integer succ = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, password);
String sql = "INSERT INTO tblmember VALUES(?, ?, ?, ?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, mDTO.getNo());
pstmt.setString(2, mDTO.getName());
pstmt.setString(3, mDTO.getAddr());
pstmt.setInt(4, mDTO.getAge());
pstmt.setString(5, mDTO.getTel());
succ = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return succ;
이때 계속 connction객체를 생성하며는 메모리의 효율성이 떨어지기 때문에 싱글톤 패턴을 사용하여 DB와 연결할 수있다.
싱글톤패턴 : Singleton-pattern
댓글남기기