J-한솔넷

JDBC와 MySQL을 이용한 데이터베이스 엑세스 본문

프로그래밍/JAVA

JDBC와 MySQL을 이용한 데이터베이스 엑세스

jhansol 2012. 10. 20. 15:13

MySQL ODBC 드라이브 다운로드 및 설치

1. www.mysql.com 에 접속합니다.

2. 페이지 하단에 Download 부분에 MySQL Connecter 링크를 클릭합니다.

3. Connecter/ODBC 링크를 클릭합니다.

4. 운영체제를 선택하고 각 운영체제에 맞는 파일을 선택하여 다운로드합니다.

5. 다운로드 받은 파일을 설치합니다.


MySQL ODBC 설정

※ 이 작업을 하기 전에 MySQL 데이터베이스에 계정 및 데이터베이스가 설정되어 있어야 합니다.

1. 제어판의 관리도구를 클릭합니다.

2. 데이터 원본(ODBC)를 클릭합니다.

3. "사용자 DSN" 텝의 "추가" 단추를 클릭합니다.

4. 드라이브 목록 중 "MySQL .... Driver"를 선택하고 "마침" 단추를 클릭합니다.

5. Data Source Name에 임의의 이름(데이터베이스를 가장 잘 설명할 수 있는 이름)을 입력합니다.

6. 데이터베이스 서버 주소, user, password, dtabase 이름 등을 입력하고 "OK" 단추를 클릭합니다.

7. "확인" 단추를 클릭하여 설정을 마무리합니다.


JDBC를 이용하여 자바프로그램에서 데이터베이스 엑세스

데이터베이스에 접근하기 위해서는 JDBC 드라이브를 로딩하고 데이터베이스에 연결한 후 Statement 객체를 이용하여 엑세스합니다. 아래 소스는 사용자의 SQL 명령을 입력받아 처리하고 그 결과를 출력하는 프로그램입니다.

단, 아래 프로그램은 아래의 구조를 갖는 테이블을 엑세스하는 것으로 국한합니다.


create table 테이블명 (

no int(4) primary key,

name varchar(20),

email varchar(20),

tel varchar(20)

)


아래 예제를 코딩하여 컴파일 한 후 위 SQL 문을 enter 키 없이 한줄로 입력하여 테이블을 먼저 만들고 검색, 삽입, 삭제, 수정 등의 SQL 명령을 실행해보세요. 데이터베이스명, 사용자 계정 이름, 암호 등은 본인의 설정에 맞게 입력합니다.


import java.sql.*;

import java.util.*;

import java.io.*;


class jdbctest2

{

Connection con = null;

Statement stmt = null;


public static void main(String[] args) 

{

BufferedReader is = new BufferedReader( new InputStreamReader( System.in ) );

String cmd;

ResultSet rs;


jdbctest2 t = new jdbctest2();

if( t.DBConnection( "jdbc:odbc:데이터베이스명", "사용자계정이름", "비밀번호" ) )  {

System.out.println( "데이터베이스에 연결 되었습니다." );

}

else {

System.out.println( "데이터베이스에 연결할 수 없습니다." );

System.exit( 0 );

}


while( true ) {

try {

cmd = is.readLine() ;

if( cmd.equals("/quit" ) ) break;

}

catch (IOException e )

{

System.out.println( "입출력 오류입니다." );

break;

}

rs = t.exec( cmd );

t.printResult( rs );

}

t.DBClose();

}


public boolean DBConnection( String url, String user, String password ) {

DBClose();

try

{

Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );

con = DriverManager.getConnection( url, user, password );

stmt = con.createStatement();

}

catch (SQLException e) {

System.out.println( "데이터베이스를 여는 중 오류가 발생했습니다." );

return false;

}

catch (ClassNotFoundException e) {

System.out.println( "ODBC 드라이브 개체를 찾을 수 없습니다." );

return false;

}

if( stmt != null ) return true;

else return false;

}


public void DBClose() {

try

{

if( stmt != null ) stmt.close();

if( con != null )con.close();

stmt = null;

con = null;

}

catch ( SQLException e ) {

System.out.println( "데이터베이스를 닫는 중 오류가 발생했습니다." );

}

}


public ResultSet exec( String str ) {

ResultSet rs = null;

if( stmt == null ) return null;

try

{

System.out.println( "전송 명령 : [" + str + "]" );

rs = stmt.executeQuery( str );

}

catch ( SQLException e )

{

System.out.println( "데이터베이스에서 오류가 발생했습니다." );

e.printStackTrace();

return null;

}

return rs;

}


public void printResult( ResultSet s ) {

if( s == null ) return;

try

{

System.out.println( "no\t\tname\t\temail\t\t\ttel" );

System.out.println( "----------------------------------------------------------------------------" );

while( s.next() ) {

System.out.println( s.getInt( "no" ) + "\t\t" + s.getString( "name" ) + "\t\t" + s.getString( "email" ) + "\t\t" + s.getString( "tel" ) );

}

}

catch ( SQLException e) {

System.out.println( "결과가 없거나 데이터베이스 오류입니다." );

}

}

}



jdbctest2.java



'프로그래밍 > JAVA' 카테고리의 다른 글

폭탄 퍼즐 게임  (0) 2012.10.31
멀티쓰레드를 이용한 채팅 프로그램  (0) 2012.10.20
간단한 이미지 뷰어  (0) 2012.09.28
자바 수업용 예제 및 파워포인트  (0) 2012.07.18