[eclipse]eclipse WTP 에서 database 이용하기
간만에 강좌 올라갑니다.
eclipse WTP 에서 database 이용하기
0. 환경
Windows XP에서 Mysql 5.0.19-nt 버전 돌아갑니다.
java version "1.5.0_04"
eclipse 3.1.2 WTP all-in-one
모두 utf-8 문자셋을 이용합니다. ㅎㅎ;
0.1. mysql에 okuser 라는 id를 만들었습니다.
GRANT ALL PRIVILEGES ON test.* TO okuser@localhost IDENTIFIED BY 'okpass' WITH GRANT OPTION;
1. 이 계정을 통해서 eclipse에서 test database에 접속합니다.
뭔가를 새로 만듭니다. WTP 플러그인이 깔려있는 eclipse에서만 가능합니다. 툴바의 첫번째 아이콘을 클릭하고 New 창에서 Data > SQL Scrapbook Page 를 선택합니다.
파일명을 "
mysql"로 합니다. 확장자가 자동으로 붙어서 "mysql.sqlpage"가 만들어집니다. 확장자가 좀 요란합니다. 편집모드는 자동으로 SQL Editor입니다. Text Editor로 열면 XML태그 때문에 대략 난감해집니다. ^^;
eclipse 하단에 Database Explorer라는 뷰가 생겼습니다. Connections를 마우스 오른버튼으로 클릭해서 나온 컨텍스트 메뉴에서 New Connection을 선택합니다.
jdbc 연결 정보를 입력합니다. MySql 5.0이지만 4.1까지 있어서 4.1로 그냥 가겠습니다. ^^; mysql 5.0 jdbc드라이버도 필요한데, 현재 beta상태이지만 이것도 그냥 들이대겠습니다. 안되면 바꿔서 되게 해야죠. ㅎㅎ;
- Database:
test - JDBC driver class:
com.mysql.jdbc.Driver - Class location:
D:\dev\okjsp\db\lib\mysql-connector-java-5.0.0-beta-bin.jar - Connection URL:
jdbc:mysql://localhost/test
- User ID:
okuser - Password:
okpass
jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=EUC_KR 2. oktable 을 만들어 보겠습니다.
아래 sql을 mysql.sqlpage 파일을 SQL Editor로 열고 다음을 입력합니다.
CREATE TABLE oktable (
seq INT NOT NULL,
title VARCHAR(100),
wtime DATETIME,
PRIMARY KEY (seq)
);
sql의 컨텍스트 메뉴에서 하단에 있는 Run SQL 메뉴를 클릭하면 실행됩니다. 여러 개의 쿼리가 있는 경우 실행하려고 하는 쿼리를 선택한 뒤에 실행할 수 있습니다.
eclipse하단의 Data Output 뷰를 보면 sql실행 결과가 나옵니다.
3. oktable에 데이터를 입력해보겠습니다.
eclipse 하단의 Database Explorer에서 수정할 테이블을 엽니다. Data Explorer > table > Data > Edit
데이터를 추가하고 저장합니다.
select * from oktable;을 mysql.sqlpage 에 추가하고 선택한 후에 Run SQL 항목을 실행합니다.4. 이 데이터를 불러오는 간단한 java 프로그램을 만들어보겠습니다.
package net.okjsp.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class LoadDriver {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String conPath = "jdbc:mysql://localhost/test?user=okuser&password=okpass";
Connection conn = DriverManager.getConnection(conPath);
String query = "select * from oktable";
Statement createStatement = conn.createStatement();
boolean execute = createStatement.execute(query);
if (execute) {
ResultSet resultSet = createStatement.getResultSet();
while (resultSet.next()) {
System.out.println(resultSet.getObject(2));
}
}
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
}
DB에 있는 데이터를 가져와 실행을 시켰습니다. mysql driver의 classpath와 현재 디렉토리를 클래스패스에 추가했습니다.
java -cp .;../lib/mysql-connector-java-5.0.0-beta-bin.jar net.okjsp.test.LoadDriver
utf-8로 한글이 들어가있어서 utf-8을 지원하지 않는 db client에서는 깨져서 보입니다. eclipse에서는 utf-8을 지원하기 때문에 eclipse만으로 단순한 db작업은 가능할 것입니다.