쌍용교육센터 - 48일

개발자가 되고 싶어요 ㅣ 2024. 4. 25. 19:14

2024.04.25

JSP와 DB연동

JDBC

Java Database Connectivity

자바에서 DB 프로그래밍을 하기 위해 사용되는 API

JDBC API 사용 어플리케이션의 기본 구성

연동 테스트

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.SQLException" %>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>연동 테스트</title>
</head>
<body>
<%
	String driverName = "oracle.jdbc.OracleDriver";
	String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:xe";
	String dbId = "user01";
	String dbPass = "1234";
	
	Connection conn = null;
	try{
		//JDBC 수행 1단계 : 드라이버 로드
		Class.forName(driverName);
		//JDBC 수행 2단계 : Connection 객체 생성
		conn = DriverManager.getConnection(jdbcUrl,dbId,dbPass);
		
		out.println("정상적으로 연결되었습니다.");
	}catch(Exception e){
		e.printStackTrace();
	}finally{
		//자원정리
		if(conn!=null)try{conn.close();}catch(SQLException e){}
	}
%>
</body>
</html>

insert.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="kr.util.DBUtil" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>글 쓰기 처리</title>
<link rel="stylesheet" href="../css/style.css" type="text/css">
</head>
<body>
<%
	//POST 방식으로 전달된 데이터 인코딩 타입 지정
	request.setCharacterEncoding("utf-8");

	//전송된 데이터 반환
	String name = request.getParameter("name");
	String title = request.getParameter("title");
	String passwd = request.getParameter("passwd");
	String content = request.getParameter("content");
	
	//DB 연동
	Connection conn = null;
	PreparedStatement pstmt = null;
	String sql = null;
	
	try{
		//Connection 객체 반환
		conn = DBUtil.getConnection();
		//SQL문 작성
		sql = "INSERT INTO tboard (num,name,title,passwd,content,reg_date) VALUES (tboard_seq.nextval,?,?,?,?,SYSDATE)";
		
		//JDBC 수행 3단계 : PreparedStatement 객체 생성
		pstmt = conn.prepareStatement(sql);
		//?에 데이터 바인딩
		pstmt.setString(1,name);
		pstmt.setString(2,title);
		pstmt.setString(3,passwd);
		pstmt.setString(4,content);
		
		//JDBC 수행 4단계 : SQL문 실행
		pstmt.executeUpdate();
%>
		<div class="result-display">
			<div class="align-center">
				글 등록 성공!<p>
				<input type="button" value="목록"
				  onclick="location.href='selectTest.jsp'">
			</div>
		</div>
<%		
	}catch(Exception e){
%>
		<div class="result-display">
			<div class="align-center">
				오류 발생! 글 등록 실패!<p>
				<input type="button" value="글 쓰기"
				  onclick="location.href='insertTestForm.jsp'">
				
			</div>
		</div>
<%		
		e.printStackTrace();
	}finally{
		//자원 정리
		DBUtil.executeClose(null, pstmt, conn);
	}
%>
</body>
</html>

'IT 국비 교육' 카테고리의 다른 글

쌍용교육센터 - 50일  (0) 2024.04.29
쌍용교육센터 - 49일  (0) 2024.04.26
쌍용교육센터 - 47일  (0) 2024.04.24
쌍용교육센터 - 46일  (0) 2024.04.23
쌍용교육센터 - 45일  (0) 2024.04.22