Datebase

JDBC(Java Database Connectivity) - MySQL, Oracle DB 연동

엘호리스 2018. 1. 30. 10:45

JDBC 프로그래밍 방법은 다음과 같다.

순서대로 어떤 작업들이 이루어지는지 확인하고 이해하도록 하자.

  • JDBC 드라이버 로딩 -> Connection 맺기 -> SQL 실행 -> (select문을 사용했다면 ResultSet 이용한 처리) -> 자원반환




  • JDBC 드라이버 로딩

1
2
3
4
5
//MySQL
Class.forName("com.mysql.jdbc.Driver");
 
//Oracle
Class.forName("oracle.jdbc.driver.OracleDriver");
cs

  • Connection 맺기

1
2
3
4
5
6
7
8
9
10
//URL      = 데이터베이스명을 포함한 URL
//ID       = 사용자 계정
//PASSWORD = 사용자 비밀번호
conn = DriverManager.getConnection(URL,ID,PASSWORD);
 
//MySQL
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbcTest","jspid","jsppass");
 
//Oracle
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE""scott""tiger");
cs

  • SQL 실행

1
2
3
4
5
6
7
8
9
//공통
PreparedStatement pstmt = null;        //PreparedStatement 객체 준비
String sql = "insert into member1 values(?,?,?,?)";    //쿼리문 준비
 
pstmt = conn.prepareStatement(sql); //prepareStatement로 sql을 미리 컴파일
pstmt.setString(1,"id");
pstmt.setString(2,"passwd");
pstmt.setString(3,"홍길동");
pstmt.setTimestamp(4new Timestamp(System.currentTimeMillis())); //현재 날짜와 시간
cs

  • (SELECT문을 사용했다면 ResultSet을 이용해 처리)

1
2
3
4
5
6
7
8
9
10
11
12
//ResultSet
ResultSet rs = pstmt.executeQuery();
String tag = "";
while( rs.next() ) {        
    tag += "<tr>";        
    tag += "<td>" + rs.getString("id")  + "</td>";        
    tag += "<td>" + rs.getString("passwd")  + "</td>";        
    tag += "<td>" + rs.getString("name")  + "</td>";        
    tag += "<td>" + rs.getString("reg_date")  + "</td>";        
    tag += "</tr>";        
}
rs.close();
cs

  • 자원 반환

1
2
3
4
5
6
7
//자원 반환
// ResultSet를 닫는다.
rs.close();
// Statement를 닫는다.
stmt.close();
// Connection를 닫는다.
conn.close();
cs




  • Oracle에서 JSP 사용 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.List"%>
<%
    String driver = "com.mysql.jdbc.Driver";
    String url    = "jdbc:mysql://localhost:3306/basicjsp";
    String dbuid  = "jspid";
    String dbpwd  = "jsppass";
    Class.forName(driver);
    Connection    conn = DriverManager.getConnection(url, dbuid, dbpwd);
    String         sql = "select * from member";
    PreparedStatement pstmt = conn.prepareStatement(sql);
    ResultSet rs = pstmt.executeQuery();
    String tag = "";
    while( rs.next() ) {
        tag += "<tr>";
        tag += "<td>" + rs.getString("id")  + "</td>";
        tag += "<td>" + rs.getString("passwd")  + "</td>";
        tag += "<td>" + rs.getString("name")  + "</td>";
        tag += "<td>" + rs.getString("reg_date")  + "</td>";
        tag += "</tr>";
    }
    rs.close();
    pstmt.close();
    conn.close();
%>
cs


    Java 은행 예제

Account.java

Bank.java

BankDao.java

BankUi.java

ShinhanBank.java

ShinhanBankDao.java

Transaction.java



참고 자료 - http://www.java-school.net/jdbc/JDBC-Intro


관련 포스팅

JDBC(Java Database Connectivity) - 자바 라이브러리

http://lhoris.tistory.com/1