is Data.

JSP JDBC 데이터베이스 프로그래밍

JDBC[Java Database Connectivity]는 DBMS[Database Management System]의 종류에 상관없이 JDBC API를 통해서

데이터베이스 작업을 처리할 수 있도록 해주는 기능이다.

 

1. JDBC[Java Database Connectivity] 사용하기

 

JDBC를 사용하기위해서는 먼저 사용하고자하는 DBMS에 맞는 JDBC드라이버를 준비해야 한다.

각 DBMS의 맞는 JDBC드라이버는 .jar 형태로 존재하는데, 이 .jar파일을 어플리케이션 하위의 WEB-INF\lib 디렉터리에

넣어주어야 한다.

 

JDBC를 진행하는 순서는 아래와 같다.

 

(1)JDBC 드라이버 로딩

=ex) Class.forName("com.mysql.jdbc.Drvier);

   Class.forName()메서드를 통해 드라이버를 로딩하면 자동으로 JDBC드라이버로 등록해준다.

파라미터는 JDBC드라이버 클래스의 완전한 이름이다.

 

(2)데이터베이스 connection 구하기

=ex) Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/DBname?

   useUnicode=true&characterEncoding=euc-kr", "username", "password" );

커넥션을 구할때는 DriverManager.getConnction() 메서드를 사용한다. 파라미터로는 jdbcURL과 DB유저이름, 패스워드가

요구된다. 위의 예제는 MySQL의 커넥션을 구하는 예제이다. 이 메서드는 커넥션을 구하지 못하면 SQLException을 발생시키므로

만드시 SQLException에 대한 예외처리를 해주어야 한다.

 

(3)쿼리 실행을 위한 Statement/PreparedStatement 객체 생성

(4)쿼리 실행

=eX) Statement stmt = conn.createStatement();

   ResultSet rs = stmt.executeQuery("select * from TABLE");

=ex) PreparedStatement pstmt = conn.createPreparedStatement("insert into TABLE values(?,?)");

   pstmt.setString(1,"Hello");

   pstmt.setInt(2,1234);

   pstmt.executeUpdate();

 

(5)쿼리 실행 결과 사용 (ResultSet)

=ex) rs.next();

ResultSet 객체의 rs는 처음에 기본적으로 첫행 이전을 가르키고 있다. 그러므로 읽어들인 결과의 행을 사용하려면

next()메서들 한 번 실행 해야 첫번째 행을 가르키는 상태가 되므로 반드시 next()메서드를 실행해 주어야 한다.

 

(6)Statement/PreparedStatement 종료

=ex) rs.close();

   stmt.close();

   pstmt.close();

 

(7)데이터베이스 connection 종료

=ex) conn.close();