- DriverManager Class
DriverManager 클래스는 데이터 원본에 JDBC드라이버를 사용해서 JSP에서 사용할 수 있는 커넥션을 만드는 역할을 한다. DriverManager는 Class.forName() 메소드를 사용해서 생성되며, 이 메소드는 Interface driver를 구현하는 작업을 수행한다.
Class.forName("com.mysql.jdbc.Driver") 메소드의 매개 변수로 "com.mysql.jdbc.Driver"와 같은 특정 드라이버 클래스를 지정하면 자동으로 로딩되어 객체가 생성되고 DriverManager에 등록된다. 드라이버 클래스를 찾지 못할 경우, forName() 메소드는 ClassNotFoundException 예외를 발생시키므로 반드시 예외처리를 해야한다.
// 예외 처리하는 방법 - ClassNotFoundException 사용일반적으로 드라이버 클래스들은 로드될 때 자신의 객체를 생성하고, 자동적으로 DriverManager 클래스의 메소드를 호출하여 그 객체를 등록한다.try {
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){}
// 또는 Exception 사용
try{
Class.forName("com.mysql.jdbc.Driver");
}catch("Exception e){}
DriverManager 클래스의 모든 메소드는 static이기 때문에 반드시 객체를 생성시킬 필요가없다. DriverManager 클래스는 Connection 인터페이스를 구현하는 객체를 생성할 때 getConnection() 메소드를 사용한다. getConnection() 메소드 사용시 SQLException 예외를 발생시키므로 반드시 예외 처리를 해야 한다.
try{getConnection(url,user,pass) 메소드는 수행 결과로 데이터베이스와 JSP가 연동할 수 Connection 객체를 리턴한다. 이 메소드의 첫 번재 매개 변수 URL은 jdbc:subprotocol:subname과 같은 형태를 갖는 데이터베이스 URL을 기술한다. user는 데이터베이스에 접근할 수 있는 계정명이고 pass는 계정의 패스워드를 말한다.
Connection conn = DriverManager.getConnection(url,user,pass);
}catch(SQLException e){}
MySQL의 경우 getConnection("jdbc:mysql://localhost:3306/bascijsp","jspid","jsppass");와 같은 형태를 갖고, 오라클의 경우 DriverManager.getConnection("jdbc:orcle:thin:@localhost:1521:orcl","scott","tiger"); 와 같은 형태를 갖는다.
프로그램을 순서대로 작성시 Class.forName() 메소드 다음에 DriverManager.getConnection() 메소드를 기술한다. 그런데 이들 메소드가 발생시키는 예외가 다르기 때문이에 예외를 각각 기술해서 프로그래밍하면 다음과 같다.
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){}
try{
Connection conn = DriverManager.getConnection(
"jdbc:mysql://loaclhost:3306/basicjsp","jspid","jsppass");
}catch(SQLException e){}
혹시 각각 예외를 기술하는 것이 번거로운 경우 모든 예외를 처리할 수 있는 Exception을 사용해서 한 번에 처리할 수 있다.
try{JSP
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/basicjsp","jspid","jsppass");
}catch(Exception e){}
0 개의 댓글:
댓글 쓰기