JDBC와 Java를 이용해 현재 시간 출력하기

Ina Kim·2021년 1월 22일
0

SQL

목록 보기
4/9

JDBC

Java에서 SQL문을 실행하기 위한 Java API

JDBC를 이용한 프로그래밍

1. 드라이버를 로드한다.

String driverName ="oracle.jdbc.driver.OracleDriver";
Class.forName(driverName); //드라이버 로드
  • 오라클 드라이버 : oracle.jdbc.driver.OracleDriver

2. Connection 객체 생성한다. (DB에 접속하기 위함)

String jdbcURL= "jdbc:oracle:thin:@127.0.0.1:1521:XE"; //connection
		String userName ="dclub";
		String userPW ="dclub";
Connection con = DriverManager.getConnection(jdbcURL, userName, userPW);
  • 오라클 JDBC URL : jdbc:oracle:thin@HOST:PORT:SID
  • Connection : java.sql
  • DriverMannerger : java.sql
  • getConnection : DBURL 받기 위해서 커넥션 시도

3. Statement객체를 통해서 SQL을 보낸다.

String query ="select sysdate from dual";
PreparedStatement pstmt = con.prepareStatement(query);
  • query : statement 객체를 생성하고 질의 수행하기 위한 쿼리문
  • PreparedStatement : 미리 컴파일된 SQL문을 나타내는 객체
  • dual : 가상의 의미
  • From 뒤에는 항상 집합이 온다. 집합은 row데이터를 가공한다.
  • 집합(레코드)의 개수만큼 row데이터를 출력한다.

4. SQL(select문)은 반드시 ResultSet을 생성한다. ResultSet은 next( )를 한다.

ResultSet rs = pstmt.executeQuery();
rs.next();
  • ResultSet : 쿼리문 실행에서 생성되는 DB결과의 집합을 나타내는 DataTable
result = rs.getString(1);
  • getString(1) : 첫번째 칼럼부터 읽어온다.

5. testDB2.jsp에 Import를한다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import= "org.zerock.dao.*" %>   

6. testDB2.jsp에서 실행한다.

<%
	TimeDAO dao = new TimeDAO();
	String str = dao.getTime();
%>

7. 결과

전체코드

package org.zerock.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class TimeDAO { 

 	//DB타입변수는 반드시 IV로 만들지마라, 그리고 Close
	public String getTime()throws Exception {
		
		// 오라클 : oracle.jdbc.driver.OracleDriver
		String driverName ="oracle.jdbc.driver.OracleDriver";
		
		// 오라클 : jdbc:oracle:thin@HOST:PORT:SID 
		String jdbcURL= "jdbc:oracle:thin:@127.0.0.1:1521:XE"; //connection
		String userName ="dclub";
		String userPW ="dclub";

		//; 주의
		String query ="select sysdate from dual"; //statement객체를 생성 및 질의수행하기위한 쿼리문
												  //dual은 sysdate를 테스트하는 용도 
		String result = null;

		Class.forName(driverName); //드라이버 로드

		try (Connection con = DriverManager.getConnection(jdbcURL, userName, userPW); //connection얻기
				PreparedStatement pstmt = con.prepareStatement(query); //statement생성
				ResultSet rs = pstmt.executeQuery(); //select하면 항상 ResultSet
				){

			System.out.println(con);

			rs.next(); //위에서 한row내려오려고
			result = rs.getString(1); //칼럼 1부터 시작함 = 첫번째 칼럼읽어옴			
			
		}catch(Exception e) {
			throw e;
		}

		return result;
	}

}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import= "org.zerock.dao.*" %>   

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
	TimeDAO dao = new TimeDAO();
	String str = dao.getTime();
%>

<%=str %>

</body>
</html>
profile
기록하는것을 좋아합니다

0개의 댓글