28_jsp_java_driver로딩_db연결분리_처리_jsp

2022. 2. 5. 17:08ksmart_jsp/06_jsp_java_mysql_model01

728x90

26_mysqljsp42.war
0.78MB

jsp에서
1단계 : import
2단계 :
DriverDb 객체참조변수명 = new DriverDB();
3단계 : 
Connection conn =객체참조변수명.driverDbcon();
* 리턴값을 받아서 jdbc 3단계 쿼리 실행을 위한
준비와 연결을 해야한다.
  패키지명 kr.or.ksmart.driverdb
클래스명 DriverDB
메서드명 driverDbcon
return data type Connection
입력갯수 0

DriverDB.java에 드라이버로딩, DB 연결을 하고 DriverDB_driverDbcon.jsp에 테스트를 한다.

jsp 파일에 있는 드라이버 로딩, DB 연결 코드 삭제 후 DriverDB.java에 있는 코드를 연결한다.


 1.처리과정 분리 

WebContent-Ex-DriverDB_driverDbcon.jsp 생성

 

더보기
더보기
더보기

Connection return data type 을 찾을 수 없어서 오류가 뜨므로 Connection을 import 해준다.

이 메서드는 연결 유형의 결과를 반환해야 한다고 한다. 클래스 안에 return값을 넣어준다.

//DriverDB.java
public class DriverDB{
	public Connection driverDbcon(){
		System.out.println("01_driverDbcon DriverDB.java");
        System.out.println("01_드라이버 로딩 및 DB 연결 처리");
		return null;
    }
}​

DriverDB type 을 찾을 수 없다-> DriverDB를 import 해서 불러온다.

//DriverDB_driverDbcon.jsp
DriverDB db = new DriverDB();
db.driverDbcon();

 

public class DriverDB {
	public Connection driverDbcon() {
		System.out.println("01_driverDbcon DriverDB.java");
		System.out.println("01_드라이버 로딩 및 DB 연결 처리");
		return null;
	}
}

 2. DB 연결 

 

DriDriverDB.java에 드라이버를 로딩한다.

더보기
더보기
더보기

 

처리되지 않는 예외 형식이으로 try문을 넣거나 driverDbcon() 메서드 뒤에 throws ClassNotFoundException 을 넣는다.

 

DriverDB.java 에 저장된 jdbcDriver, dbUser, dbPass 를 DriverDB_driverDbcon.jsp에 불러온다.

Conn객체참조변수에 대한 연결을 확인 할 수 없다->conn 변수의 초기값을 넣어준다.


jsp 파일 수정

Class.forName("com.mysql.jdbc.Driver");
		
System.out.println("02 DB 연결 DriverDB.java");

String jdbcDriver="jdbc:mysql://localhost:3306/dev42db?"+"useUnicode=true&characterEncoding=euckr";
String dbUser="dev42id";
String dbPass="dev42pw";

Connection conn=null;
conn=DriverManager.getConnection(jdbcDriver,dbUser,dbPass);

위 jsp 파일 드라이버로딩과 DB연결 코드 삭제 후

아래 코드로 변경한다.

<%@ page import="kr.or.ksmart.driverdb.DriverDB"%>
DriverDB db=new DriverDB();
conn=db.driverDbcon();

 

변경 값 코드 : https://moon09-developer.tistory.com/68


DriverDB.java

package kr.or.ksmart.driverdb;

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

public class DriverDB {
	public Connection driverDbcon() throws ClassNotFoundException, SQLException {
		System.out.println("01 드라이버 로딩 DriverDB.java");
		Class.forName("com.mysql.jdbc.Driver");
		
		System.out.println("02 DB 연결 DriverDB.java");
		
		String jdbcDriver="jdbc:mysql://localhost:3306/dev42db?"+"useUnicode=true&characterEncoding=euckr";
		String dbUser="dev42id";
		String dbPass="dev42pw";
		
		Connection conn=null;
		conn=DriverManager.getConnection(jdbcDriver,dbUser,dbPass);
		
		return conn;
	}
}

DriverDB_driverDbcon.jsp

<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
	pageEncoding="EUC-KR"%>
<%@ page import="kr.or.ksmart.driverdb.DriverDB"%>
<%
	Connection conn=null;
	DriverDB db = new DriverDB();
	conn = db.driverDbcon();
%>
728x90