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

JSP 강좌 > JDBC > MySQL 연결 #2

2001-01-25 kenu


jdbc 를 사용해서 table을 생성해보았습니다. 그럼 여기에 데이터를 집어넣어야겠죠. table 에 변동이 생기는 질의(query)를 사용할 때는 executeUpdate() 를 사용합니다. 그렇지 않고, 단순히 조회만 할 때에는 executeQuery()를 사용하게되죠. 질의 문장을 String 변수에 옮기고, 이것을 다각도로 변화시키면서, DB에 들어가는 한글 코드문제까지 함께 생각해 보기로 하겠습니다.

mysqljdbc01.jsp

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

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

Connection conn;
Statement stmt;

String query = "insert into createtest values('kenu', '017-111-1111')";
// name varchar(10), tel varchar(15)

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

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

stmt = conn.createStatement();

stmt.executeUpdate(query);

conn.commit();

out.println("data inserted!!");

stmt.close();

conn.close();

// } catch(Exception e){e.printStackTrace();}
%>

이렇게 저장을 한 뒤에 브라우저에서 페이지를 불러와 실행 시켜봅니다.

data inserted!!

라고 메시지가 나오면 제대로 입력이 된 것입니다.

이제 영문으로 된 'kenu' 를 '허광남1' 이라고 바꾸고 저장한 뒤에 브라우저에서 실행해 봅니다.

data inserted!! 가 나오겠죠. 이 때 문제가 좀 생겼습니다.

mysql 에 들어가서 조회해 보면 한글이 깨져있기 때문입니다.

그럼 일단 이 부분을

String query = "insert into createtest values('"+new String("허광남2".getBytes("8859_1"), "euc-kr")+"', '017-111-2222')";

으로 고쳐서 다시 브라우저로 호출해서 실행시킵니다.

이제 mysql에서 확인해 보면 한글이 제대로 들어가 보이는 것을 확인할 수 있습니다.

다음에는 db에 들어간 내용을 빼오는 차례입니다.

 

참고 : about Oracle 8i 376, 385

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

prev : back : next
 
since 2000/12/05