본문 바로가기
Programming/Spring

[spring] 데이터베이스 연동

by NAMP 2016. 4. 19.

[spring] 데이터베이스 연동

테이블 생성

drop table userinfo;
create table userinfo (
    userid varchar2(15) primary key,
    username varchar2(20),
    userpwd varchar2(10),
    email varchar2(50),
    phone varchar2(15),
    address varchar2(100)
);

insert into userinfo (userid, username, userpwd, email, phone, address)
values ('admin', '관리자', 'a1234', 'admin@mc.co.kr', '02-1234', '서울 역삼');
insert into userinfo (userid, username, userpwd, email, phone, address)
values ('user01', '길동이', '1234', 'hong@mc.co.kr', '00-0000', '서울');

commit;

thin driver 는 순수 Java 로 만들어져 있다.

오라클 xe 가 설치되어 있습니다.

DB 연동할 준비

패키지 구조를 만든다.

user
user.vo
user.dao
user.service
util

커넥션 관리가 이루어져야 한다.

jdbc util 을 만든다.

UserInfo 테이블을 만든다.

DB 연동을 하려면 제일 중요한 것은 커넥션

드라이버가 컴파일 타임에 결정되면 안된다.

Class.forName(“xxxxx”)

DriverManager 클래스가 있다.

DriverManager.getConnection(url, user, password)

DB 에 따라 URL 패턴이 다르다.

jdbc:oracle:thin@localhost:1521:xe

클래스 생성

package util;

public class JDBCUtil {
    
}

함수 생성

import java.sql.Connection;

public class JDBCUtil {
    public static Connection getConnection(){
        Connection con = null;
        return con;
    }
    public static void close(){
        
    }
}

resources 에 db 패키지 생성. 프로퍼티 파일 생성

driver=oracle.jdbc.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:xe
user=hr
pwd=hr

c 드라이브로 파일을 복사한다.

getConnection 함수를 구현한다.

public static Connection getConnection(){
   String file = "C:/db/db.properties";
   Connection con = null;
   try {
        Properties p = new Properties();
        p.load(new FileInputStream(file));
        String driver = p.getProperty("driver");
        String url = p.getProperty("url");
        String user = p.getProperty("user");
        String pw = p.getProperty("pwd");
           
        Class.forName(driver);
        con = DriverManager.getConnection(url, user, pw);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return con;
}

close 함수를 구현한다.

public static void close(ResultSet rs, PreparedStatement ps, Connection con){
    try {
        if (rs != null) rs.close();
        if (ps != null) ps.close();
        if (con != null) con.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

테스트 실행

public class Test {
    public static void main(String[] args) {
        Connection con = JDBCUtil.getConnection();
        System.out.println(con);
        JDBCUtil.close(null, null, con);        
    }
}

정상적으로 실행되면 주소값이 출력된다.

oracle.jdbc.driver.T4CConnection@16b8460f

export 파일 : https://goo.gl/uDRrMY

댓글