반응형
1. 파일을 다운로드 후, 인스톨 한다.
계정 생성에서는 Skip Sign-Up
나머지는 next
패스워드는 알아서 잘 설정
MySQL Server Instance Configuration 에서 Manual 선택 후, euckr 선택한다.
2. MySQL 드라이버 설치
mysql-connector-java-5.0~을 다운로드 후, 압축을 푼다.
안에 들어있는 mysql-connector-java-5.0.0-beta-bin.jar을 연동하려하는 곳의 \WEB-INF\lib 폴더에 넣는다.
3. 테스트
root로그인
c:\>mysql -u root -p
데이터베이스 추가
c:\>mysqladmin -u root -p create jsptest
사용자 계정 추가
mysql> grant select, insert, update, delete, create, drop
-> on jsptest.* to 'jspid'@'localhost'
-> identified by 'jsppass';
4. JDBC를 사용한 JSP와 데이터베이스의 연동
JDBC드라이버
JDBC-ODBC 브리지 + ODBC 드라이버 (JDBC-ODBC Bridge Plus ODBC Drive)
JDK에서 제공하는 기본 JDBC 드라이버로서 JDBC뿐만 아니라 ODBC를 같이 이용하여 데이터베이스에 접근하는 방법이다.
ODBC를 이용해 구축되어 있다면, 굳이 다른 드라이버를 사용하지 않고서도 시스템을 확장해 나갈 수 있다.
그러나 ODBC와 DB간에 소켓을 사용해서 통신을 주고받기 때문에 방화벽을 통과하지 못해서 익스트라넷 환경에서 사용할 수가 없고, ODBC 접속 부분에서 100% 자바 코드를 사용하지 못하기 때문에 애플릿도 연결할 수가 없다. 또한 ODBC라는 통신을 한번 더 사용하기 때문에 속도가 느리다.
네이티브-API 부분적인 자바 드라이버 (Native-API Partly-Java Driver)
로컬에 설치된 원시 라이브러리를 이용해 데이터베이스와 연결한다.
원시 라이브러리의 대부분은 C언어로 작성되어 있다.
이 드라이버에서는 애플릿이 동작하지 않는다.
JDBC-Net 순수 자바 드라이버 (JDBC-Net Pure Java Driver)
JDBC-Net 순수 자바 드라이버는 원시 라이브러리가 원격 서버에 있기 때문에 원격 서버에서 원시 라이브러리를 이용한다는 차이점을 가지고 있다.
인터넷으로 연결되어 있는 곳에서는 어디서든지 원시 라이브러리를 이용해 연결되어질 수 있다는 특징을 가지고 있다. 즉, 3-tier 아키텍처로 JDBC API표준에 의하여 만들어졌기 때문에 DBMS의 종류에 상관없이 사용할 수 있고, 4가지 타입 중에서 가장 융통성이 뛰어나다.
네이티브-프로토콜 순수 자바 드라이버 (Native-Protocol Pure Java Driver)
순수 자바로 만들어졌다.
ODBC나 원시 라이브러리를 이용하지 않고도 곧바로 데이터베이스에 연결되어진다는 장점이 있다.
현재 거의 모든 DBMS 벤더에서 JDBC를 위한 네이티브-프로토콜 순수 자바 드라이버를 만들어 놓고 있다.
MySQL Connector/J 5.0는 네이티브-프로토콜 순수 자바 드라이버로 순수 자바로 제공되어서 이식성이 좋다.
JDBC 프로그램의 작성 단계
1). JDBC 드라이버 Load
MySQL 드라이버 로딩
Class.forName("com.mysql.jdbc.Driver");
Oracle 8i or 9i thin 드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
2). Connection 객체 생성
MySQL 사용 시 Connection 객체 생성
Connection conn=
DriverManager.getConnection("jdbc:mysql://localhost:3306/jsptest", "jsdpid","jsppass");
Oracle 사용 시 Connection 객체 생성
Connection conn=
DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ora817","scott","tiger");
3). Statement/PrepardStatement/CallableStatement 객체 생성)
Statement stmt=con.createStatement();
4). Query 수행
- stmt.executeQuery : recordSet 반환
Select 문
ResultSet rs = stmt.excuteQuery("select * from member");
- stmt.executeUpdate() : 성공한 row 수 반환
Insert문, Update문, Delete문
String sql="update member set passwd='1234' where id='asdf'";
stmt.executeUpdate(sql);
5). ResultSet 처리
ResultSet은 한 행씩 이동하면서 getXxx()를 이용해서 원하는 필드 값을 추출할 수 있다. rs.getString("name") 혹은 rs.getString(1)로 사용한다.
while(rs.next()){
out.print(rs.getString("id"));
out.print(rs.getString("passwd"));
}