윈도우에서 드라이버 연동은 굉장히 쉬웠다. 그냥 WEB-INF/lib에 드라이버를 넣어주니 잘 작동했으나 리눅스는 작업을 거쳐줘야 정상적인 사용이 가능했다. 우선 MySQL에서 제공하는 Connector/J를 다운받자. 필자의 경우에는 Platform Independent로 받았다. 압축파일인데 압축풀어서 jar파일있으면 된다.


먼저 압축파일을 다운받고 풀어준뒤 해당 디렉터리로 들어가자.

1
sudo cp mysql-connector-java-8.0.17.jar $JAVA_HOME/lib/

그리고 위 경로로 jar 파일을 배치시켜야 한다. 다음은 profile에서 다음 내용을 추가한다.

1
sudo vi /etc/profile
1
export CLASSPATH=.:$JAVA_HOME/lib/mysql-connector-java-8.0.17.jar
1
source /etc/profile

필자의 경우에는 위 과정을 거치고 잘 됐지만 가끔 실패하는 경우도 있었다. 발생하는 오류는 WEB-INF/lib에 드라이버가 없다는 것이었다. 왜 그런진 모르겠지만 드라이버를 넣어주고 진행하였다. 여하지간 이제 드라이버가 정상적으로 인식되는지 확인하자.


Programing

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<%@ page import="java.sql.*"%>
<%
String DB_URL = "jdbc:mysql://127.0.0.1:3306/testcase?serverTimezone=UTC";
String DB_USER = "baealex";
String DB_PW = "1234";
Connection conn;
PreparedStatement ps;
ResultSet rs;

try {
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PW);

    StringBuffer sb = new StringBuffer();
    sb.append(" SELECT * FROM GUEST ");
    ps = conn.prepareStatement(sb.toString());

    rs = ps.executeQuery();

    while(rs.next()){
        out.println(rs.getString(1)+"&nbsp"+rs.getString(2)+"&nbsp"+rs.getString(3)+"<br />");
    }

    conn.close();
    out.println("MySQL JDBC Driver Connection Test Done.");
} catch(Exception e) {
    out.println(e.getMessage());
}
%>

오라클과 연결하는 것과 비슷하지만 설정해 주어야 하는 부분이 DB_URL과 Class.forName 부분을 다르게 변경해야 한다. 또 MySQL URL 경로의 하단에 ?serverTimezone=UTC라고 붙어있는데 처음 MySQL을 사용할때 계속 시간과 관련된 오류가 발생해서 당황했으나 해당 문구를 붙이고 문제를 해결할 수 있었다.

또 쿼리를 실행시키는 함수는 executeQuery()와 updateQuery()가 있는데 SELECT 구분이 포함되었으면 execute로 그외의 경우에는 update로 실행하면 된다. execute의 경우에는 ResultSet이라는 형식으로 반환해주고 update는 int형으로 반환해 주는데 실패면 0을 반환한다.


Result

1
2
3
4
5
1 baealex Hi
2 endy nice
3 aram good!
4 baealex Hi
MySQL JDBC Driver Connection Test Done.
WRITTEN BY

배진오

하고싶은 건 다 하면서 사는게 목표
im@baejino.com

comments powered by Disqus