>JDBC(Java DataBase Connectivity)
-자바에서 데이터베이스에 접속할 수 있도록 해주는 자바 API
(자바와 데이터베이스에 다리를 하나 놓고 택배기사가 물건을 옮기도록 하여 전달한다.)
:라이브러리 위치
C:\program Files (x86)\MySQL\Connector J 8.0
<과정>
1.설계도 읽기
Class.forName("com.mysql.cj.jdbc.Driver");
-->try, catch로 예외처리를 해주자
*ClassNotFoundException(드라이버 로딩 실패)
2.내가 넣으려는 database의 url , 접속하기 위한 mysql 아이디,비밀번호 적어두기
= 다리짓기: 다리 지을 위치, 방법 정하기
String url = "jdbc:mysql://localhost:3307/testworld";
String user = "root";
String password = "1234";
3.설치되어 있는 Driver를 통해서 Connection 객체 생성
= 지어진 다리 돌려받기
Connection conn = DriverManager.getconnection(url, user, password);
4.connection 객체를 통해 PreparedStatement 객체 생성
= 다리 위 왔다 갔다할 택배 차 뽑기
PreparedStatement ps = conn.prepareStatement(sql);
-->try, catch로 예외처리를 해주자
*SQLException(데이터베이스 연결 실패)
5.SQL문 수행 후 결과(SELECT 문이라면)를 ResultSet 객체로 받기
ResultSet rs = ps.executeQuery();
6.
1) data검색해오는 경우
(1)String sql = "SELECT NOW() FROM dual";
(2)next(), getString() 사용해서 찾아오기
if( rs.next() ){
String data = rs.getString("NOW()");
syso(data);
}else{
syso("데이터가 존재하지 않습니다.");
}
2) data넣는 경우
(1) sql = "INSERT INTO test(strdata, timedata) VALUES(?,?)";
(2) ps = conn.prepareStatement(sql);
(3) ps.setString(1, "apple");
ps.setString(2, "2021-12-13 10:36:52");
(4) int result = ps.executeUpdate();
if(result ==1) {
System.out.println("데이터 추가 성공!");
}else {
System.out.println("데이터 추가 실패!");
}
//INSERT, UPDATA,DELETE : executeUpdata() - 수정된 행의 수 return
//SELECT :executeQuery() - 검색 결과테이블 return
예제1) intdata, strdata, timedata 를 넣는 경우
sql = "SELECT * FROM test";
ps = conn.prepareStatement(sql);
rs= ps.executeQuery();
while(rs.next()){
int intdata = rs.getInt("intdata");
//데이터를 받아올 때에는 컬럼의 위치(순번)로도 가능하다.
String strdata = rs.getString(2);
String timedata = rs.getString("timedata");
System.out.println(intdata+"/"+ strdata +"/" + timedata);
}
예제2) 문자열 하나 입력받아서 데이터도 추가하고 기존에 추가된 값을 수정도 해야하는 경우
매번 새로운 jdbc 를 연결할때마다 다리를 부수고 다시 짓고 다시 택배차를 뽑고 반복을 해야한다.
그러므로 이 과정을 클래스로 묶어놓으면 쓰고 싶을때마다 사용할 수 있다.
1. 라이브러리에 있는 Connection 을 import 한다
2. Connection 타입 conn 을 자유자제로 쓰기 위해 private static 으로 선언
: private static Connection conn;
3. Connection 타입 getConnection() 메소드 만들기
4. conn 객체안에 값이 없으면(=null) 다리 짓고 택배차 뽑는 일 하도록 만들기

5.삽입하는 메소드랑 변경하는 메소드 만들어서 main 메소드에서 쓰기 위해서
TestDAO class 를 만들어준다.



'프로그래밍 > DBMS' 카테고리의 다른 글
DBMS 4일차 - DBMS 문법 (0) | 2021.12.10 |
---|---|
DBMS 3일차 - 정규화,DML (0) | 2021.12.09 |
DBMS 2일차 -데이터 베이스, 테이블, 모델링 (0) | 2021.12.08 |
DBMS 1일차 -DBMS (0) | 2021.12.08 |