jdbc

기혁·2023년 3월 22일

JSP 학습

목록 보기
16/19

jdbc란

  • Java DataBase Connectivity
  • 자바에서 데이터베이스에 접속/관리할 수 있게
    해주는 드라이버(API)
  • 자바로 작성된 프로그램으로 DB와 관련된 작업을
    처리할 수 있도록 제공되는 기능(코드)들을 모아놓은 것

ojdbc란

  • Oracle jdbc
  • 오라클에서 제공하는 오라클 DB를 관리할 수 있또록
    도와주는 JDBC

jdbc 기본 코드 (데이터 삽입)

jdbc_test.jsp

<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	Connection conn = null;
	// 활용할 드라이버
	String driver = "oracle.jdbc.driver.OracleDriver";
	// 목적지(Oracle DB)
	String url = "jdbc:oracle:thin:@localhost:1521:xe";
	// dbms 계정명
	String user = "jsp";
	// dbms 비밀번호
	String password = "jsp";
	
	int check = 0;
	
	try{
		Class.forName(driver);
		System.out.println("jdbc driver 로딩 성공");
		
		conn = DriverManager.getConnection(url, user, password);
		System.out.println("오라클 연결 성공!!");
		
		String sql
		= "INSERT INTO CAR VALUES ('4', 'K7', 'white',70000000)";
		
		PreparedStatement pstm = conn.prepareStatement(sql);
		
		check = pstm.executeUpdate();
		System.out.println("check : " + check);
		
		if ( check != 0) {
			System.out.println("데이터 삽입 성공");
		} else {
			System.out.println("데이터 삽입 실패!");
		}
		
	} catch(Exception e){
		System.out.println("예외발생");
		e.printStackTrace();
	}
%>
</body>
</html>

결과값
carnum 4번이 추가되는 모습이다.

예외발생 경우는 이클립스 콘솔창에 뜬다.

jdbc 기본 코드(시간출력)

jdbc_test2.jsp

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	Connection conn = null;
	// 활용할 드라이버
	String driver = "oracle.jdbc.driver.OracleDriver";
	// 목적지(Oracle DB)
	String url = "jdbc:oracle:thin:@localhost:1521:xe";
	// dbms 계정명
	String user = "jsp";
	// dbms 비밀번호
	String password = "jsp";
	
	Class.forName(driver);
	conn = DriverManager.getConnection(url, user, password);
	
	String sql = "select sysdate from dual"; // 현재 서버
	PreparedStatement pstm = conn.prepareStatement(sql);
	ResultSet rs = pstm.executeQuery();
	
	while (rs.next()){
		out.print(rs.getDate(1)); // 2023-03-21
	}
	
%>

<%-- <%=conn %> --%>
</body>
</html>

결과값

jdbc 기본 출력(DBMS 데이터)

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	Connection conn = null;
	// 활용할 드라이버
	String driver = "oracle.jdbc.driver.OracleDriver";
	// 목적지(Oracle DB)
	String url = "jdbc:oracle:thin:@localhost:1521:xe";
	// dbms 계정명
	String user = "jsp";
	// dbms 비밀번호
	String password = "jsp";
	
	Class.forName(driver);
	conn = DriverManager.getConnection(url, user, password);
	
	String sql = "select * from car"; // 현재 서버
	PreparedStatement pstm = conn.prepareStatement(sql);
	ResultSet rs = pstm.executeQuery();
	
	while (rs.next()){
		out.print("차 번호 : " + rs.getString(1) + "<br/>"); 
		out.print("브랜드 : " + rs.getString("BRAND") + "<br/>");
		out.print("색상 : " + rs.getString(3) + "<br/>");
		out.print("가격 : " + rs.getInt("PRICE") + "원<br/>");
		
	}
	
	out.print("<br><hr>");
	String carnum = "2";
	//sql = "select * from car where carnum='" + carnum + "'";
	sql = "select color from car where carnum=?";
	pstm = conn.prepareStatement(sql);
	pstm.setString(1, carnum);
	
	rs = pstm.executeQuery();
	if(rs.next()){
		out.print("색깔 : " + rs.getString(1));
	}
	
	
	
	rs.close();
	pstm.close();
	conn.close();
%>

<%-- <%=conn %> --%>
</body>
</html>

결과값

예외처리

DBconnection.java

package com.codingbox.dao;

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

public class DBconnection {
	
	public static Connection getConnection() {
		Connection conn = null;
		
		try {
		// 활용할 드라이버
		String driver = "oracle.jdbc.driver.OracleDriver";
		// 목적지(Oracle DB)
		String url = "jdbc:oracle:thin:@localhost:1521:xe";
		// dbms 계정명
		String user = "jsp";
		// dbms 비밀번호
		String password = "jsp";
		
		Class.forName(driver);
		conn = DriverManager.getConnection(url, user, password);
		} catch (SQLException e) {
			System.out.println("드라이버 로딩 오류");
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			System.out.println("DB 접속 오류");
			e.printStackTrace();
		} catch (Exception e) {
			System.out.println("알 수 없는 에러");
			e.printStackTrace();
		}
		
		return conn;
	}
}

테이블 별로 데이터 출력

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean class="com.codingbox.vo.MemberBean" id="member"></jsp:useBean>
	<jsp:setProperty property="name" name="member" value="김자바"/>
	<jsp:setProperty property="age" name="member" value="22"/>
	
	
	<table border="1">
		<tr>
			<th>이름</th>
			<th>나이</th>
		</tr>
		<tr>
			<td>
				<jsp:getProperty property="name" name="member"/>
			</td>
			<td>
				<jsp:getProperty property="age" name="member"/>
			</td>
			
		</tr>
		
	</table>
	
</body>
</html>

결과값

profile
⭐️내가만든쿠키⭐️

0개의 댓글