Java data base connectivity
자바에서 DB 프로그래밍을 하기위해 사용되는 API
(데이터 베이스 종류에 상관없음)
JDBC API 사용 어플리케이션의 기본 구성
JDBC Driver
각 DBMS에 맞는 클라이언트
DBMS와 통신을 담당하는 자바클래스
DBMS별 알맞은 JDBC 드라이버 필요(jar)
로딩코드: Class.forName("JDBC 드라이버이름");
*Mysql : com.mysql.jdbc.Driver
JDBC URL
DBMS 연결을 위한 식별 값
JDBC 드라이버에 따라 형식이 다름.
구성: jdbc[DBMS] : [데이터베이스 식별자]
*Mysql : jdbc:mysql://PORT/DBNAME?
JDBC 프로그래밍 코딩흐름
1 : 드라이버 로딩 (mysql 선택)
2 : Connection 객체로 DB연결
3 : Query 실행 준비
(statement 또는 PreparedStatement 객체생성)
4 : Query 실행
5 : Query 실행 결과사용
(insert,update,delete의 경우 생략 가능단계)
6 : statement 또는 PreparedStatement 객체 종료(close())
7 : DB연결 (Connection 객체) 종료(close())
insert action, form 2개 파일 작성.
Connection conn = null;
String jdbcDriver = "jdbc:mysql://localhost:3306/dev43db?" +
"useUnicode=true&characterEncoding=euckr";
String dbUser = "dev43id";
String dbPass = "dev43pw";
conn = DriverManager.getConnection(jdbcDriver, dbUser, dbPass);
getConnection 메서드 호출되는 이유?
DriverManager 클래스에 static으로 선언된 메서드이기 때문이다.
static으로 선언된 메서드는 새로운 객체생성 X
-> 클래스명.메서드호출( );
connection interface data type으로 conn객체참조변수 선언 후 JDBC4Connection 클래스 통해 생성된 객체의 주소값을 conn에 할당한다.
패키지명:java.sql
클래스명:DriverManager
//메서드 선언
static Connection getConnection(String url, String user, String password){
//매개변수에 3개의 값 입력받고
정상 또는 비정상 판단 후 정상이면 Connection 객체의 주소값을 리턴, 그렇지 않으면 에러발생
mysql driver 로딩에러
Class.forName("com.mysql.jdbc.Driver");
로딩코드가 찾을수있는 JDBC 드라이버(jar)가 있어야한다.
(WebContent 하위 lib 폴더위치)
(statement 또는 PreparedStatement 객체생성)
PreparedStatement prepareStatement(String sql) {
//매개변수 sql에 쿼리문장을 입력받고
PreparedStatement ps = new PreparedStatement();
return ps;