본문 바로가기
스프링

자바 jdbc 스프링 DB 접근

by y00ns00 2020. 5. 19.

mysql

 

package spring_app12_conn;

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



public class MysqlDAO implements DAO {
	private static Connection conn;
	
	final String DRIVER = "com.mysql.jdbc.Driver";
	final String URL = "jdbc:mysql://localhost:3306/goott7?useSSL=false";
	final String USER = "scott";
	final String PASSWORD = "tiger";
	

	StringBuffer sb = new StringBuffer();
	PreparedStatement pstmt = null;
	ResultSet rs = null;
	
	
	
	public void init() {
		
			if(conn == null) {
				try {
					Class.forName(DRIVER);
					conn = DriverManager.getConnection(URL, USER, PASSWORD);
					
					System.out.println("conn : "+ conn);
				} catch (ClassNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}// if end
			
		
	} // init end
	
	
	
	
	
	
	
	public void close() {
		try {
			
			conn.close();
			System.out.println("종료메소드 호출");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}// close() end
	
	
	

	@Override
	public int selectCount() {
		// TODO Auto-generated method stub
		sb.setLength(0);
		sb.append("select count(*) cnt ");
		sb.append("from dept ");
		
		int result = 0;
		try {
			pstmt = conn.prepareStatement(sb.toString());
			rs = pstmt.executeQuery();
			
			if(rs.next()){
				result = rs.getInt("cnt");
				
			}
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
		return result;
		
		
	}
	
	
	
	


	
	
}

oracle

package spring_app12_conn;

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



public class OracleDAO implements DAO {
	
	String driver = "oracle.jdbc.driver.OracleDriver";
	String url = "jdbc:oracle:thin:@localhost:1521:XE";
	String user = "scott";
	String password = "tiger";
	
	
	Connection conn = null;
	StringBuffer sb = new StringBuffer();
	PreparedStatement pstmt = null;
	ResultSet rs = null;
	
	public OracleDAO() {
		
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url,user,password);
			
			System.out.println("conn : "+ conn);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}// 생성자 end
	
	
	@Override
	public int selectCount() {
		sb.setLength(0);
		sb.append("select count(*) cnt ");
		sb.append("from dept ");
		
		int result = 0;
		try {
			pstmt = conn.prepareStatement(sb.toString());
			rs = pstmt.executeQuery();
			
			if(rs.next()){
				result = rs.getInt("cnt");
				
			}
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
		return result;
	}// selectCount() end

	
	
}

 

bean

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
	
	<!-- <bean id="oracle" class="spring_app12_conn.OracleDAO"></bean> -->
	
	
	<!--  기본 생성자를 통한 DBMS 접근하는 방법 대신
		   개발자가 method를 만들어서 접근하도록 되어 있음
		   
		   
		 => 자아 먼저 실행된 메소드를 선택 : init-method
		 => 메모리 제거할 목적의 메소드 선택 : destory-method  
	 -->
	 
	 <!--  처음 시작될 메소드 끝나면 실행될 메소드 범위 등을 정할수 있는것이  spring프레임워크의 최대 장점 -->
	<bean id="dao" class="spring_app12_conn.MysqlDAO"
		init-method="init" destroy-method="close"  scope="singleton"
	>
	
</bean>
</beans>

 

'스프링' 카테고리의 다른 글

spring websocket + stomp  (0) 2020.06.03
AOP 관점 지향 프로그래밍  (0) 2020.05.20
annotation  (0) 2020.05.18
maven  (0) 2020.05.18
스프링 정리  (0) 2020.05.15

댓글