2008. 4. 7.

Database JDBC 설정

데이타베이스별 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 이미 사용된 객체명입니다

댓글 없음: