Java Database Connectivity
자바에서 데이터베이스에 접속할 수 있도록 해주는 자바 API
1. Java에서 SQL문을 문자열 타입으로 작성 2. 설치된 Driver를 이용해서 Connection 객체 생성 3. Connection 객체를 통해 PreparedStatement 객체 생성(SQL문을 넘겨주며) 4. 만들어진 PreparedStatment 객체를 통해 SQL문 수행 5. SELECT문이라면 검색 결과가 있으므로 ResultSet 객체로 받기 6. 적절한 횟수의 rs.next()를 통해 받아오고자 하는 데이터가 위치한 행 선택 7. rs.get~~()로 각 컬럼의 데이터 받아오기
Java에서 sql에 접근하고 싶으면 java build path를 해야한다.
라이브러리 위치
C:\Program Files (x86)\MySQL\Connector J 8.0
프로젝트 > 우측마우스 클릭 > properties > java build path > add external JARs > jar 파일선택, apply and close
package jbdc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
private static Connection conn;
public static Connection getConnection() {
//싱글톤 패턴 : 단 하나의 객체만 만들어서 사용하도록 설계된 패턴
if(conn == null) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");//Java쪽으로 설계도 클래스를 사용하고자 불러오는 것
System.out.println("드라이버 로딩 성공!");
//다리를 짓고자 하는 목적지
String url = "jdbc:mysql://localhost:3306/web0315";
String user = "root";
String password = "1234";
conn = DriverManager.getConnection(url, user, password);
}
catch(ClassNotFoundException cnfe) {
System.out.println("드라이버 로딩 실패 : "+cnfe);
}
catch(SQLException sqle) {
System.out.println("DB 연결 실패"+sqle);
}
}
return conn;
}
}
먼저 테이블을 하나 만들어준다.
create table test(
intdata int primary key auto_increment,
strdata varchar(1000),
timedata datetime
);
그후 java에서 문자열을 입력받고 그 문자열을 우리가 만들어둔 테이블에 추가시키는 코드를
작성한다.
package jbdc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class JDBCTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("추가할 문자열 : ");
String strdata = sc.nextLine();
//insert into test (strdata,timedata) values(오늘 수업 끝, now());
String sql = "insert into test (strdata, timedata) values (?, now())";
Connection conn = DBConnection.getConnection();
try {
PreparedStatement ps = conn.prepareStatement(sql);
//첫번째 물음표에 strdata에 있는 값을 문자열로 세팅(양쪽에 ''를 붙여준다)
ps.setString(1, strdata);
if(ps.executeUpdate()==1) {
System.out.println("쿼리 수행 성공!");
}
} catch (SQLException sqle) {
System.out.println("쿼리 수행 실패 : "+sqle);
}
}
}
java에서 실행을하고 console 창에 추가할 문자열을 입력하고 엔터키를치면 코드에 작성해놓은 로직을 수행하고 수행에 성공했다면 아래 이미지처럼 나올 것 이다.
이후 sql로가서 우리가 만들어 뒀던 테이블 test를 select해본다면
이처럼 우리가 넘겨준 문자열이 잘 추가되어있다.