자바 어플리케이션과 데이터베이스 간의 연결을 허용하는 API로 flow는 다음과 같다.
public class Example {
public static void main(String[] args) {
String jdbc_driver = "com.mysql.cj.jdbc.Driver";
String jdbc_url = "jdbc:mysql://localhost:3306/board?serverTimezone=UTC";
try {
//DB 연결 설정
Class.forName(jdbc_driver).newInstance();
Connection con = DriverManager.getConnection(jdbc_url, "root", "root");
//SQL문 실행
Statement st = con.createStatement();
String sql = "SELECT * FROM member";
ResultSet rs = st.executeQuery(sql);
//결과 가져오기
while(rs.next()){
String name = rs.getString(1);
String owner = rs.getString(2);
String date = rs.getString(3);
System.out.println(name + " " + owner + " " + date);
}
rs.close();
st.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
sql문을 스트링으로 전달받을 때 조건문을 입력받아 준비된 select문과 concat을 하는 경우 db에 모든 정보가 조회될 수 있는 문제가 발생하기 때문에 PrepareStatement메소드를 통해 db에 접근하는 것을 권장한다.
String sql = "INSERT INTO pet VALUES (?,?,?,?,?,?)";
PreparedStatement pstmt = conn.prepareStatement(sql);