DB 연결 -> 입력값 준비 -> 쿼리문 생성 -> 쿼리 수행 -> 연결 닫기
DB 연결
--Connection 활용
JDBConnect jdbc = new JDBConnect();
--Connection Pool 활용
DBConnPool pool = new DBConnPool();
쿼리 생성
Statement
: 인파라미터가 없는 정적 쿼리
PreparedStatement
: 인파라미터가 있는 동적 쿼리
CallableStatement
: 프로시저나 함수 호출
쿼리 수행
executeUpdate()
: INSERT, UPDATE, DELETE 실행
executeQuery()
: SELECT 실행 -> ResultSet 객체 반환
동적 쿼리문으로 회원 추가
<%@page import="common.DBConnPool"%>
<%@ page import="java.sql.PreparedStatement"%>
<%@ page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head><title>JDBC</title></head>
<body>
<h2>회원 추가 테스트(executeUpdate() 사용)</h2>
<%
// DB 연결
DBConnPool pool = new DBConnPool();
// 테스트용 입력값 준비
String id = "test2";
String pass = "2222";
String name = "테스트2회원";
// 쿼리문 생성
String sql = "INSERT INTO member VALUES (?, ?, ?, sysdate)";
PreparedStatement psmt = pool.con.prepareStatement(sql);
psmt.setString(1, id);
psmt.setString(2, pass);
psmt.setString(3, name);
// 쿼리 수행
int inResult = psmt.executeUpdate();
out.println(inResult + "행이 입력되었습니다.");
// 연결 닫기
pool.close();
%>
</body>
</html>
PreparedStatement psmt = pool.con.prepareStatement(쿼리문);
psmt.setString(순서, 값);
psmt.executeUpdate();
정적 쿼리문으로 회원 조회
<%@page import="common.DBConnPool"%>
<%@ page import="java.sql.ResultSet"%>
<%@ page import="java.sql.Statement"%>
<%@ page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head><title>JDBC</title></head>
<body>
<h2>회원 목록 조회 테스트(executeQuery() 사용)</h2>
<%
// DB 연결
DBConnPool pool = new DBConnPool();
// 쿼리문 생성
String sql = "SELECT id, pass, name, regidate FROM member";
Statement stmt = pool.con.createStatement();
// 쿼리 수행
ResultSet rs = stmt.executeQuery(sql);
// 결과 확인(웹 페이지에 출력)
while (rs.next()) {
String id = rs.getString(1);
String pw = rs.getString(2);
String name = rs.getString("name");
java.sql.Date regidate = rs.getDate("regidate");
out.println(String.format("%s %s %s %s", id, pw, name, regidate) + "<br/>");
}
// 연결 닫기
pool.close();
%>
</body>
</html>
Statement stmt = pool.con.createStatement();
ResultSet rs = stmt.executeQuery(쿼리문);
rs.next()
: ResultSet 객체의 다음 행을 반환