개발일지/JSP
[JSP] DB연결 확인 (JDBC)
연습용365
2021. 11. 27. 13:52
<index_jdbc.jsp>
jsp 첫날 수업할 때 했었던 DB연결 확인 파일이다
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.Connection" %> <%@ page import="java.sql.DriverManager" %> <% boolean connection = false; Connection conn = null; String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@localhost:1521:xe"; try { Class.forName(driver); //오라클 드라이버를 올리는거 conn = DriverManager.getConnection(url, "c##iciauser", "1234"); //url (DB접속정보) 아이디와 비번까지 넣어서 실제 오라클에 접속된 정보를 입력 //객체생성문. 객체가 생성이 잘 안 됐으면 Null 반환. null이면 연결 실패 if(conn == null) { System.out.println("DB연결 실패 입니다........"); } else { connection = true; System.out.println("DB연결 성공 입니다."); } } catch(Exception e) { connection = false; System.out.printf("DB 연결 실패"); e.printStackTrace(); } %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JDBC 테스트</title> </head> <body> <% if(connection == true) { %> <h1>연결 되었습니다.</h1> <% } else { %> <h1>연결 실패.</h1> <% } %> </body> </html>
<com.icia.web.model / User.java>
implements 인터페이스 클래스 상속
serializable 직렬화를 위한 객체
객체에 저장된 데이터를 사용하기 위해서 연속적인 데이터로 변환하는 것이다.
<DBManagement.java>
package com.icia.web.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public final class DBManager { //jdbc 드라이버명 private static final String diverClassName = "oracle.jdbc.OracleDriver"; //jdbc url private static final String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:xe"; //계정 private static final String userName = "c##iciauser"; private static final String password = "1234"; //생성자 //없으면 자동으로 컴파일 private DBManager() {} //데이터베이스 연결 객체 얻기 //Connection 구현 public static Connection getConnection() { Connection conn = null; try { Class.forName(diverClassName); conn = DriverManager.getConnection(jdbcUrl, userName, password); } catch(ClassNotFoundException e) { //콘솔로그에 찍기 System.out.println("[DBManager]getConnection ClassNotFoundException"); } catch(SQLException e) { System.out.println("[DBManager]getConnection SQLException"); } return conn; } //close() 메소드, //ResultSet 닫기(select시에만 닫긔) public static void close(ResultSet rs) { //오버로딩 close(rs, null, null); } //PreparedStatement 객체 닫기(status일 때 닫기) public static void close(PreparedStatement pstmt) { close(null, pstmt, null); } //Connection 객체 닫기 public static void close(Connection conn) { close(null, null, conn); } //ResultSet, PreparedStatment 객체 닫기 public static void close(ResultSet rs, PreparedStatement pstmt) { close(rs, pstmt, null); } //PreparedStatment, Connection 객체 닫기 public static void close(PreparedStatement pstmt, Connection conn) { close(null, pstmt, conn); } //데이터베이스 객체 닫기 public static void close(ResultSet rs, PreparedStatement pstmt, Connection conn) { if(rs != null) { try { rs.close(); } catch(SQLException e) { System.out.println("[DBManager]close ResultSet SQLException"); } } if(pstmt != null) { try { pstmt.close(); } catch(SQLException e) { System.out.println("[DBManager]close PreparedStatement SQLException"); } } if(conn != null) { try { conn.close(); } catch(SQLException e) { System.out.println("[DBManager]close Connection SQLException"); } } } // commint 모드 변경 //자동인 경우 수동, 수동의 경우 자동으로 바꿈 public static void setAutoCommit(Connection conn, boolean flag) { if (conn != null) { try { if (conn.getAutoCommit() != flag) { conn.setAutoCommit(flag); } } catch (SQLException e) { System.out.println("[DBManager]setAutoCommit SQLException"); } } } //rollback public static void rollback(Connection conn) { if(conn!=null) { try { conn.rollback(); } catch(SQLException e) { System.out.println("[DBManager]rollback SQLException"); } } } }
로그인 DB 커넥션 할 때 만든 파일인데 비교해 보면 좋을 듯 하다.