2015 IT 웹 기반 개발자과정/JDBC

JDBC Oracle DB연동 및 해제 클래스 만들기 / 사용하기

한여름밤의코딩 2015. 11. 25. 17:28
//오라클 DB 연동되는 클래스와 메소드

package kr.ac.jnu.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class ConnectionFactory {
		
	public Connection getConnection(){
		Connection conn = null;
		
		try {
			
			Class.forName("oracle.jdbc.driver.OracleDriver");
			String url = "jdbc:oracle:thin:@localhost:1521:xe";
			String user = "hr";
			String password = "hr";
			conn = DriverManager.getConnection(url, user, password);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return conn;
	}
	
	public void close(Connection conn, PreparedStatement pstmt ){
		if (conn != null){
			
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
		
		
}		

//============================================================
//오라클 DB연동 해제해주는 클래스와 메소드

package kr.ac.jnu.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class JDBCClose {

	public static void close(Connection conn, PreparedStatement pstmt) {

		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		if (pstmt != null) {
			try {
				pstmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	public static void close(PreparedStatement pstmt) {

		if (pstmt != null) {
			try {
				pstmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

//============================================================
// 생성한 유틸클래스를 이용하여 오라클 DB연동 및 해제하기

package kr.ac.kr.jnu.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Scanner;

import kr.ac.jnu.util.ConnectionFactory;
import kr.ac.jnu.util.JDBCClose;


//		CREATE TABLE t_test (
//	 		id		varchar2(20) primary key,
//	 		name   varchar2(40) not null
//			);

 

public class InsertMain {
	public static void main(String[] args) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		Scanner sc = new Scanner(System.in);

		try {

			ConnectionFactory factory = new ConnectionFactory();
			conn = factory.getConnection();

			StringBuilder sql = new StringBuilder();
			sql.append("insert into t_test(id, name) values(?,?)");

			pstmt = conn.prepareStatement(sql.toString());

			System.out.println("아디");
			String id = sc.nextLine();
			System.out.println("이름");
			String name = sc.nextLine();
			pstmt.setString(1, id);
			pstmt.setString(2, name);

			int cnt = pstmt.executeUpdate();

			System.out.println(cnt + "행 입력");

			sql.append("select * from t_test");

			pstmt = conn.prepareStatement(sql.toString());

			ResultSet rs = pstmt.executeQuery();
			ResultSetMetaData rsmd = rs.getMetaData();

			while (rs.next()) {
				System.out.printf("%-2s : %-10s   %-4s : %-10s \n", rsmd.getColumnName(1), rs.getString(1),
						rsmd.getColumnName(2), rs.getString(2));
			}

		} catch (Exception e) {

			JDBCClose.close(conn, pstmt);
			sc.close();

		}
	}
}



//============================================================