설치 : JDBC MySQL : MySQL 연결 #2 : MySQL 연결 #3

JSP 강좌 > JDBC > MySQL 연결

2000-12-19 kenu


jdbc 에는 연결되는 DB마다 다른 Driver를 사용해서 연결하게 됩니다. MySQL도 jdbc driver를 지원합니다. 일단 다운 받으러 갑시다. [다운받기] 1.2c를 받아서 사용해봅니다. 그냥 alzip 이나 winzip으로 압축을 풀어줍니다. 압축풀면 나오는 doc\README.html 파일을 잘 읽어주세요. ^^ 그럼 이거 안봐도 되요. 켈켈...

CLASSPATH에 mm.mysql.jdbc-1.2c 폴더를 추가해줍니다. 지금까지 세팅한 것이라면 win2000 + iis5 + resin 1.2.1 + MySQL 3.23.29 의 환경에서 CLASSPATH 를 추가하게 되죠. 바탕화면의 내컴퓨터 아이콘을 오른버튼메뉴에서 등록정보를 들어가서 고급의 환경변수 버튼을 클릭해서 CLASSPATH 값을 복사합니다. 편집해서 붙여넣죠. 제 경우는...

.;C:\JDK1.3\LIB\tools.jar;C:\mm.mysql.jdbc-1.2c;

이렇게 잡혀있습니다. 환경변수 변경이 끝나면 도스창을 새로 띄워서 set 를 치고 classpath 를 확인해봅니다. (사실 이것은 원 소스(createTable.java)를 dos창에서 컴파일하기 위한 것입니다. jsp만을 돌리려면 필요가 없습니다.) 그리고, 이 상태에서 jsp를 돌려보니 클래스 패스 타령입니다. 급한 맘에 mm.mysql.jdbc-1.2c 에 있는 org 폴더를 C:\Inetpub\wwwroot\WEB-INF\classes\ 에 복사해서 놓으니 인식을 하고 돌아가네요.
NOTE: C:\mm.mysql.jdbc-1.2c 폴더에 있는 jar 파일을 jdk1.3/jre/lib/ext 디렉토리에 복사하면 위의 classpath 과정을 거치지 않아도 됩니다. ^^;

일단 소스를 공개합니다. about Oracle 8i(영진출판사) 에 있는 소스를 수정해서 올립니다.

mysqljdbc.jsp

<%@ page import="java.sql.*" %>

<%
String DB_URL = "jdbc:mysql://localhost/test";
String DB_USER = "";
String DB_PASSWORD= "";

Connection conn;
Statement stmt;

String query = "create table createTest(name varchar(10), tel varchar(15))";

// try {
Class.forName("org.gjt.mm.mysql.Driver");

conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);

conn.setAutoCommit(false);
stmt = conn.createStatement();

stmt.executeUpdate(query);

conn.commit();

out.println("table created!!");

stmt.close();

conn.close();

// } catch(Exception e){out.println(e.getMessage());}
%>

MySQL 의 test DB는 말 그대로 테스트용입니다. 보안이 걸리지 않은 것입니다. 일단 연결되어서 테이블 생성하는 것이 이번 강좌의 목표입니다. 그리고, 일단 error 가 생긴다면 그것을 브라우저 상으로 보기 위해서 try {} catch (){} 을 주석 처리했습니다. try catch를 사용하면 무식한 에러 코드를 보지 않으셔도 됩니다. 하지만 개발할 때는 즉각 즉각 문제를 보고 해결하는 것이 더 현명하겠죠.. 물론 에러 없는 코드가 바로 짜지면 좋겠지만...

코드는 상자속의 상자처럼 생각하면 됩니다. 큰 상자를 준비합니다. Class.forName("db driver") 에서 드라이버를 준비합니다. Class 의 C는 대문자입니다. 그리고, 연결시키는 박스를 그 안에 집어넣습니다. DB_URL과 user, password 를 필요로 합니다. test 는 id와 password 를 비워둡니다. 나중에 계정을 통해서 접속하는 법을 알아야겠죠...

statement를 받아옵니다. query를 실행시킵니다. 쿼리에는 두가지가 있습니다. 값을 가져오는 쿼리, 값을 가져오지 않는 쿼리. 값을 가져오는 쿼리는 Select 문 입니다. ResultSet 을 사용해서 값을 받아올 수 있습니다. 다른 것들은 실행결과 값을 int 값으로 받습니다. 0 일때는 제대로 처리가 되지 않았다는 뜻이죠. 그럴 경우에는 원상태로 돌립니다. RollBack이라고 하죠. 제대로 들어 갔을 때는 0 이 아닌 값이 반환됩니다.

commit() 으로 말뚝을 밖은 다음에 상자를 꺼냅니다. 꼬이지 않게 잘 닫아줍니다. 연결이 다 끝난 다음은?

끝이죠 모.

소스를 wwwroot 밑에 저장하고 브라우저에서 불러봅니다. 제대로 실행이 되었다면 table created!! 를 볼 수 있고, 그 다음부터는 createTable 이 있다고 에러가 날 것입니다. query 변수의 쿼리를 바꿔서 실습해 보세요. 아! mysql 에 dos 창을 통해서 접속한 상태에서는 web에서 제대로 이용이 안되네요.

애고, 졸려.... 잘 정서해서 다시 올리겠습니다. 일단 성공하세요. 문서들은 좋은 것들이 많이 있네요...

modified 2001-03-14

 

참고 : about Oracle 8i 376, 385
http://www.mysql.to

kenu: heogn@shinbiro.com
http://okjsp.pe.kr

prev : back : next
 
since 2000/12/05