데브코스 W5D2

코끼릭·2022년 4월 12일
0

TIL

목록 보기
16/36

JDBC

자바 어플리케이션과 데이터베이스 간의 연결을 허용하는 API로 flow는 다음과 같다.

  1. DriverManager를 통해서 컨넥션 객체를 받아옵니다.
  2. Connection을 통해서 Statement를 가져옵니다.
  3. Statement를 통해서 쿼리를 실행해서 ResultSet을 가져오거나 update를 실행합니다.
  4. 데이터베이스 컨넥션을 종료합니다.

JDBC API 사용 예제

 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 Injection

sql문을 스트링으로 전달받을 때 조건문을 입력받아 준비된 select문과 concat을 하는 경우 db에 모든 정보가 조회될 수 있는 문제가 발생하기 때문에 PrepareStatement메소드를 통해 db에 접근하는 것을 권장한다.

String sql = "INSERT INTO pet VALUES (?,?,?,?,?,?)";
PreparedStatement pstmt = conn.prepareStatement(sql);

JDBC 사용방법

profile
ㅇㅅㅇ

0개의 댓글