JDBC API를 이용하여 데이터베이스에 연결하기
1. java.sql 모듈 import 하기
import java.sql.*;
2. 드라이버 Load하고 Connection하기
public static void main(String[] args) {
String dbAddress = "";
String dbUsername = "";
String dbPassword = "";
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(dbAddress, dbUsername, dbPassword);
} catch (ClassNotFoundException e) {
System.out.println("[Error]: Java MySQL DB Driver not found!!");
System.exit(0);
} catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
}
구현시 해당 경로에서 드라이버를 찾지 못하는 예외 발생을 대비해 try catch 구문 사용하기
Static은 프로그램이 시작되자마자 곧장 메모리에 올라가므로 Static 블록 안에 드라이브 클래스 로딩하기
DB에 접근하기 위해 getConnection 기능을 사용하는데 이때 3가지 정보가 필요
(1. 연결할 DB의 url, 2. 계정명, 3. 계정 비밀번호)
3. SQL문 실행하고 생성된 결과 반환하기
try{
PreparedStatement pstm;
String sql = "SELECT * from car, car_category CC, copy, produce WHERE car.callnum = ?";
pstm = conn.prepareStatement(sql);
pstm.setString(1, callnumber);
ResultSet rs = pstm.executeQuery();
while (rs.next()){
isresult = true;
rs_call_num = rs.getString("callnum");
rs_car_name = rs.getString("name");
rs_name = rs.getString("ccname");
rs_company = rs.getString("cname");
rs_copy_num = rs.getInt("copynum");
System.out.println("|" + rs_call_num + "|" + rs_car_name + "|" + rs_name + "|" + rs_company + "|" + rs_copy_num + "|");
}
}catch (SQLException e) {
System.out.println("Wrong SQL!");
}
실행할 SQL문을 만들어 preparedStatement 메서드를 통해 실행하기
setString같은 메서드로 SQL구문에서 "?" 부분을 원하는 표현으로 대체 가능
SQL문이 SELECT문이면 executeQuery() 메서드 사용, INSERT, UPDATE, DELETE문이면 executeUpdate() 메서드 사용하기
ResultSet rs를 통해 SQL문 실행시 출력되는 데이터베이스 결과 값을 가져 올 수 있음
rs.getString, rs.getInt로 데이터베이스 값에서 원하는 항목을 불러 올 수 있음
Interested Concept
Why use preparedStatement ?
https://guswns00123.tistory.com/5
[Java] Why use Prepared Statement
Why use Prepared Statement instead of Statement? 위에 구문을 Statement 객체를 사용하여 만들면 다음처럼 구현된다. String sql = String sql = "SELECT * from car, car_category CC, copy, produce WHERE car.callnum =" + num; Statement stmt
guswns00123.tistory.com
'Language' 카테고리의 다른 글
| [Python] What is Duck typing? (1) | 2023.02.06 |
|---|---|
| [Python] What is Dynamic typing? (2) | 2023.01.30 |
| [C 언어] How to read file in C (2) | 2023.01.18 |
| [COBOL] What is COBOL ? (0) | 2023.01.10 |
| [Java] Why use Prepared Statement (0) | 2023.01.02 |