JSP

JSP 웹 프로그래밍 - JDBC로 데이터베이스와 JSP 연동 01 (JDBC의 개요, JDBC 드라이버 로딩 및 DBMS 접속)

로기221 2023. 3. 8. 14:46
728x90
반응형

1. JDBC의 개요

 

JDBC(Java DataBase Connectivity)

  • 자바/JSP 프로그램 내에서 데이터베이스와 관련된 작업을 처리할 수 있도록 도와주는 자바 표준 인터페이스
  • 관계형 데이터베이스 시스템에 접근하여 SQL 문을 실행하기 위한 자바 API 또는 자바 라이브러리
  • JDBC API를 사용하면 DBMS의 종류에 상관없이 데이터베이스 작업을 처리할 수 있음

 

 

JDBC를 사용한 JSP와 데이터베이스의 연동

 

java.sql.* 패키지 임포트

JDBC 드라이버 로딩

데이터베이스 접속을 위한 Connection 객체 생성

쿼리문을 실행하기 위한 Statement/PreparedStatement/CallableStatement 객체 생성

쿼리 실행

쿼리 실행의 결과 값(int, ResultSet) 사용

사용된 객체(ResultSet, Statement/PreparedStatement/CallableStatement, Connection) 종료

 

 

 

 

2. JDBC 드라이버 로딩 및 DBMS 접속

JDBC 드라이버 로딩하기
JDBC 드라이버 로딩 단계에서는 드라이버 인터페이스를 구현하는 작업
  • Class.forName( ) 메소드를 이용하여 JDBC 드라이버를 로딩

  • JDBC 드라이버가 로딩되면 자동으로 객체가 생성되고 DriverManager 클래스에 등록

  • JDBC 드라이버 로딩은 프로그램 수행 시 한 번만 필요

 

 

 

Connection 객체 생성하기

  • JDBC 드라이버에서 데이터베이스와 연결된 커넥션을 가져오기 위해 DriverManager 클래스의 getConnection( ) 메소드를 사용
  • DriverManager 클래스로 Connection 객체를 생성할 때 JDBC 드라이버를 검색하고, 검색된 드라이버를 이용하여 Connection 객체를 생성한 후 이를 반환

 

 

 

데이터베이스 연결 닫기

  • 데이터베이스 연결이 더 이상 필요하지 않으면 데이터베이스와 JDBC 리소스가 자동으로 닫힐 때까지 대기하는 것이 아니라 close( ) 메소드로 생성한 Connection 객체를 해제
  • 일반적으로 데이터베이스 리소스를 사용하지 않기 위해 사용을 끝내자마자 리소스를 해제하는 것이 좋음

 

 

 

JDBC API로 데이터베이스 접속하기

// connection.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Database SQL</title>
</head>
<body>
	<%
		Connection conn = null;
		try {
			String url = "jdbc:mysql://192.168.111.40:3306/JSPBookDB";
			String user = "root";
			String password = "1234";
			
			Class.forName("com.mysql.cj.jdbc.Driver");
			conn = DriverManager.getConnection(url, user, password);
			out.println("데이터베이스 연결이 성공했습니다.");
		} catch (SQLException ex) {
			out.println("데이터베이스 연결이 실패했습니다.<br>");
			out.println("SQLException: " + ex.getMessage());
		} finally {
			if (conn != null)
				conn.close();
		}
	%>
</body>
</html>

- 출력 -

 

728x90
반응형