[DB] JDBC란?(MySQL 기준)

@욕심쟁이

·

2020. 8. 20. 15:12

반응형

JDBC란?

 - Java DataBase Connection

 - 자바(JSP, 웹서버) 와 DBMS를 연결시켜주는 프로그램

 

사용방법

 1) JDBC드라이버(DBMS에 제공) 설치

 2 ) C드라이브 - Program Files(X86) - MySQL - connector J 8.0 - mysql-connector-java-버전.jar 가져오기

 2) 이클립스 - 프로젝트 -WebContent - WEB-INF - lib - 가져온 jar파일 넣어주기

 

실행방법

1단계

 1-1)JDBC 프로그램안에 Driver 프로그램 가져오기

 1-2) com\mysql\jdbc Driver.class

 1-3) Driver d=new Driver(); 직접사용하지않고 가져와서 다른프로그램이 사용

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>WebContent/Study/jsp2/jdbcTest.jsp</title>
</head>
<body>
<h1>WebContent/Study/jsp2/jdbcTest.jsp</h1>

<%
//JDBC 프로그램 설치
//이클립스 - 프로젝트 -WebContent - WEB-INF - lib - 가져온 jar파일 넣어주기
//1단계 -  JDBC 프로그램안에 Driver 프로그램 가져오기
// com\mysql\jdbc Driver.class
//Driver d=new Driver(); 직접사용하지않고 가져와서 다른프로그램이 사용
Class.forName("com.mysql.jdbc.Driver");
//Class.forName("oracle.jdbc.driver.OracleDriver"); - 오라클에서
//String sql ="";
%>
</body>
</html>

2단계 - DriverManager 자바프로그램이 Driver 프로그램을 가지고 디비서버 접속 → 접속정보 저장

<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>WebContent/Study/jsp2/jdbcTest.jsp</title>
</head>
<body>
<h1>WebContent/Study/jsp2/jdbcTest.jsp</h1>

<%
// JDBC 프로그램 설치
// 이클립스 - 프로젝트 -WebContent - WEB-INF - lib - 가져온 jar파일 넣어주기
// 1단계 -  JDBC 프로그램안에 Driver 프로그램 가져오기
// com\mysql\jdbc Driver.class
// Driver d=new Driver(); 직접사용하지않고 가져와서 다른프로그램이 사용
Class.forName("com.mysql.jdbc.Driver");
//Class.forName("oracle.jdbc.driver.OracleDriver"); - 오라클에서
//String sql = '';

// 2단계 - DriverManager 자바프로그램이 Driver 프로그램을 가지고 디비서버 접속 → 접속정보 저장
// DriverManager.getConnection(url, user, password);
String dbUrl = "jdbc:mysql://localhost:서버통로(포트번호)/디비이름";   //db접속주소 //내서버에 디비정보있음:통로/디비이름
//String dbUrl = "jdbc:oracle:@localhost:서버통로(포트번호):XE";   -오라클
String dbUser = "root";  //db접속아이디
String dbPass ="1234";  //db접속패스워드
//DriverManager.getConnection(dbUrl,dbUser, dbPass);
//반복사용안해도되게 변수에 담음 // 연결정보니까 connection
Connection con = DriverManager.getConnection(dbUrl,dbUser, dbPass); 
%>
연결성공
</body>
</html>

3단계 - 접속정보를 이용해서 sql구문 만들고 실행 할 수 있는 자바프로그램 생성 

          (insert, update, de;ete, select)

4단계 - sql실행 (insert, update, delete)

           sql실행 → 결과저장(select)

5단계  - 결과 → 화면에 출력, 저장(select)

마무리 작업 (기억장소 해제)

- pstmt.executeUpdate();

  → update, insert, delete에선 executeUpdate(); 를 사용하여 쿼리문을 업로드 시켜줌

- ResultSet rs = pstmt.executeQuery();  

  → select에선 select된 정보를 ResultSet에 executeQuery();사용하여 해당 데이터를 꺼내 저장하여 출력

(insert, update, delete, select 예시보기)

// String sql = "insert into student (num, name) values ("+num+", '"+name+"')";//현재 잘사용되지않는 방법 //보안상 좋지않음
 String sql =  "insert into student (num, name) values (?,?)";
 PreparedStatement pstmt = con.prepareStatement(sql);
 pstmt.setInt(1, num);  // parameterIndet ? 물음표순서
 pstmt.setString(2, name);  // parameterIndet ? 물음표순서
 
//4단계 - sql실행 (insert, update, delete)   sql실행 → 결과저장(select)
pstmt.executeUpdate();

 

반응형

'IT > DB' 카테고리의 다른 글

[DB] 제약조건 5가지(NOT NULL/UNIQUE/PK/FK/CHECK)  (0) 2020.08.24
[DB] 트랜잭션(Transaction)이란?  (0) 2020.08.21
[DB] 데이터 조작어(DML)  (0) 2020.08.19
[DB] 데이터타입(IN Oracle)  (0) 2020.08.19
[DB] MYSQL 데이터베이스 설정  (0) 2020.08.18