2009-01-12

JDBC 설정

MySQL과 JSP의 연동을 위해서 mysql jdbc를 설정해 보자. 현재 많은 사용자층을 확보하고 있는 MySQL은 쉽고 강력한 성능으로 많은 유저들의 사랑을 받고 있다. 설치에 앞서 먼저 mysql jdbc드라이버를 다운 받는다. 현재 안정버전은 3.0 버전이다. 아래의 다운로드에서 드라이버를 받는다.

MySQL JDBC Download

다운로드 받았으면 리눅스에서 사용 가능 하도록 환경 설정을 해줘야 된다. 환경설정이라고 어렵게 생각할것 없다. 경로만 인식시켜 주면 된다.

[root@localhost]#

[root@localhost]# tar xvfz mysql-connector-java-3.0.8-stable.tar.gz
[root@localhost]# cp mysql-connector-java-3.0.8-stable /usr/local/mysql-jdbc
[root@localhost]# cd /usr/local/mysql-jdbc
[root@localhost]# ls -al

폴더 안에 mysql-connector-java-3.0.8-stable-bin.jar이라는 화일이 보일 것이다. 실제로 사용될 드라이버 화일이다. 이제 mysql jdbc드라이버를 사용하기 위해서 profile에 환경 설정을 해주자.

[root@localhost]#

[root@localhost]# vi /etc/proflie
# MySQLjdbc Config
export CLASSPATH="$CLASSPATH:/usr/local/mysql-jdbc/mysql-connector-java-3.0.8-stable
-bin.jar"(한줄로 정확히 입력해야 된다)

CLASSPATH를 설정해줄때 $CLASSPATH부분을 꼭 써줘야 된다. 안그러면 기존에 설정 되어 있는 CLASSPATH는 설정이 안된다. 이제 변경시킨 profile를 적용을 시키고 테스트를 해보자.

[root@localhost]#

[root@localhost]# source /etc/profile
[root@localhost]# set | grep CLASSPATH
CLASSPATH=.:/usr/local/tomcat/common/lib/servlet.jar:/oracle/product/8.1.7/jdbc/lib/
classes111.jar:/usr/local/mysql-jdbc/mysql-connector-java.jar

위의 설정은 필자의 CLASSPATH설정이다. 기존에 추가 되어있는 부분 마지막에 mysql jdbc드라이버가 설정이 되어있다.

+MySQL JDBC 테스트 #1

이제 MySQL JDBC드라이버가 제대로 설정이 되었는지 접속 테스트를 해보자. 먼저 아래와 같이 입력하면 드라이버가 로딩이 되는지 알 수 있다.

[root@localhost]#

[root@localhost]# javap org.gjt.mm.mysql.Driver
public class org.gjt.mm.mysql.Driver extends com.mysql.jdbc.Driver {
public org.gjt.mm.mysql.Driver() throws java.sql.SQLException;
}

위와 같이 나왔다면 이상이 없는것이다. 만약 설정이 잘못되어 있다면 아래와 같이 에러메시지가 나올 것이다.

[root@localhost]#

[root@localhost]# javap org.gjt.mm.mysql.Driver
Class 'org.gjt.mm.mysql.Driver' not found

에러 메시지가 나오면 CLASSPATH설정을 확인해 보기 바란다.

이제 실제로 테스트를 해보자 jdbc드라이버를 이용한 javamysql의 연동이다.

[root@localhost]#

[root@localhost]# vi jdbc.java
import java.sql.*;
class jdbc {
public static void main(String argv[]) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("jdbc 드라이버 로딩 성공");
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
try {
String url = "jdbc:mysql://localhost:3306/mysql";
Connection con = DriverManager.getConnection(url,"root","");
System.out.println("mysql 접속 성공");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select user from user where user=
'root'");
System.out.println("Got result:");
while(rs.next()) {
String no= rs.getString(1);
String tblname = rs.getString(1);
System.out.println(" no = " + no);
System.out.println(" tblname= "+ tblname);
}
stmt.close();
con.close();
} catch(java.lang.Exception ex) {
ex.printStackTrace();
}
}
}

위의 소스는 mysql jdbc드라이버를 테스트 해볼수 있는 소스이다. 입력후 컴파일 하자.

[root@localhost]#

[root@localhost]# javac jdbc.java
[root@localhost]# java jdbc
드라이버 로딩 성공
접속 성공
Got result:
no = root
tblname= root
no = root
tblname= root

위와 같이 나오면 정상적으로 연동이 되는것이다.

+MySQL JDBC 테스트 #2

이제 jsp와 연동을 테스트 해보자. 아래와 같이 테스트용 jsp화일을 생성한다.

[root@localhost]#

[root@localhost]# vi mysql.jsp
<%@ page import="java.sql.*"
contentType="text/html;charset=euc-kr"%>
<%
String DB_URL = "jdbc:mysql://localhost:3306/mysql";
String DB_USER = "root";
String DB_PASSWORD= "";
Connection conn;
Statement stmt;
try {
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection(DB_URL, DB_USER,
DB_PASSWORD);
stmt = conn.createStatement();
conn.close();
out.println("MySQL 연결 성공");
} catch(Exception e)
{out.println(e);}
%>

위와 같이 입력을 하고 웹에서 확인해 보자. 확인을 위해서는 물론 tomcatresin같은 프로그램이 Apache와 연동이 되어있어야 한다.

웹상에서 확인을 해보면 "Mysql 연결 성공"이라는 글자가 보일 것이다.

+MySQL JDBC 트러블 슈팅

정상적으로 연결에 성공하면 좋지만 tomcat 4버전부터 연동하는데 조금 어려움이 있다. 정상적으로 CLASSPATH도 잡혀있고 java와의 연동도 되지만 jsp와의 연동이 잘 안될때가 많았다. 이럴때는 다음과 같이 링크를 걸어주기 바란다.

[root@localhost]#

[root@localhost]# cd /usr/local/tomcat/common/lib
[root@localhost]# ln -s /usr/local/mysql-jdbc/mysql-connector-java-3.0.8-stable-
bin.jar /usr/local/tomcat/common/lib/mysql-connector-java-3.0.8-stable-bin.jar

이렇게 링크를 걸어주면 tomcat환경에서 jdbc의 연동이 가능할것이다.


2009-01-09

Fedora에서 java jdk 업데이트

우선 bin 으로 java 다운받아서~ (jdk 파일의 이름을 여기선 편의상 jdk로 함)
# chmod 755 jdk.bin
# ./jdk
# mv jdk /usr/local/


패스잡아주고~
# vi
/etc/profile
JAVA_HOME=/usr/java/jdk
CLASSPATH=/usr/java/jdk
CLASSPATH=$CLASSPATH:$JAVA_HOME/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$HOME/bin:$JAVA_HOME:
export PATH JAVA_HOME CLASSPATH
# source /etc/profile

기존의 icedTea등의 gij 버젼에서 새로 깐걸로 교체 ㄱㄱㄱㄱ
# alternatives --install /usr/bin/java java /usr/java/jdk/bin/java 2
# alternatives --config java
*화면이 나오면 원하는 버젼 선택