데이타베이스별 JDBC 설정(Oracle, MySQL, MSSQL) JSP
2008/02/06 00:16
http://blog.naver.com/cuckoo03/120047728068
이 포스트를 보낸곳 ()
1. 드라이버설치
해당 DB 드라이버를 JAVA_HOME/jre/lib/ext 와 TOMCAT_HOME/common/lib 아래에 복사
2. URL분석
url 형식의 문자열을 인자로 사용.
jdbc:subprotocol:subname
subprotocol -> 사용할 드라이버 이름 or 특정 데이터베이스와의 연결을 지정하는 방식
subname -> 찾고자 하는 특정 데이터베이스명
3. Database별 Driver 와 connection URL
DATABASE
VALUE
ORACLE
DRIVER
oracle.jdbc.driver.OracleDriver
URL
jdbc:oracle:thin:@hostname:port:SID
MSSQL
DRIVER
com.microsoft.jdbc.sqlserver.SQLServerDriver
URL
jdbc:Microsoft:sqlserver://localhost:1433;databasename=DB명
MYSQL
DRIVER
org.gjt.mm.mysql.Driver
URL
jdbc:mysql://localhost:3306/DB명
4. 드라이버테스트 (도스창)
도스상에서 javap 드라이버명
ex)javap com.mysql.jdbc.Driver
5. DB 접속테스트 (JSP 테스트)
<%@ page contentType="text/html;charset=euc-kr" import!!="java.sql.*" %>
<%
try {
Class.forName("해당JDBC_DRIVER");
String url = "해당CONNECTION URL";
String id = "DB사용자아이디";
String pass = "DB비밀번호";
Connection conn = DriverManager.getConnection(url, id, pass);
Out.print("데이터베이스연결성공")
conn.close();
} catch(SQLException e) {
out.println("데이버베이스연결실패" + e.printStackTrace());
}
%>
6. DB 접속테스트 (java 테스트)
* 클래스패스설정필요 ex)c:\jdk1.4\jdbcmysql-connector-java-3.0.15-ga-bin.jar
import!! java.sql.*;
public class DriverTest{
/* mysql
private static String JDBC_DRIVER = "com.mysql.jdbc.Driver";
private static String JDBC_URL = "jdbc:mysql://localhost:3306/dbname?uniCode=true&characterEncoding=euckr";
private static String DBUSER = "root";
private static String DBUSER_PASS = "passwd";
*/
/* mssql
private static String JDBC_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static String JDBC_URL =
"jdbc:microsoft:sqlserver://localhost:1433;databasename=gmpd";
private static String DBUSER = "sa";
private static String DBUSER_PASS = "passwd";
*/
public static void main(String args[]){
Connection con = null;
try{
Class.forName(JDBC_DRIVER).newInstance();
con=DriverManager.getConnection(JDBC_URL, DBUSER, DBUSER_PASS);
System.out.println("Success");
}catch(SQLException ex){
System.out.println("SQLException" + ex);
ex.printStackTrace();
}catch(Exception ex){
System.out.println("Exception:" + ex);
ex.printStackTrace();
}
}
}
에러 메시지 및 해결
드라이버 로딩 에러 : java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
jdbc드라이버가 클래스패스에 설정되지 않았거나 잘못 설정 된 경우
DB 접속 실패 : java.sql.SQLException: IO 예외 상황: The Network Apater could not establish the connection
네트워크 또는 db서버의 리스너가 구동되고 있지 않거나 db서버가 죽어 있을 경우, db정보 설정이 잘못설정 된 경우
DB접속 실패 : java.sql.SQLException: ORA-01017:invalid username/password; logon denied
디비 연결 정보가 잘못 설정되었을 경우
sql문 수행 오류 : java.sql.SQLException:ORA-00907 우괄호가 없습니다
java.sql.SQLException:ORA-00955 이미 사용된 객체명입니다
2008. 4. 7.
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기