2022.02.10

초보개발·2022년 2월 10일
0

TIL

목록 보기
14/17

MySQL JDBC 연동하기

mysql driver는 com.mysql.cj.jdbc.Driver로 지정해주면 된다.

Statement대신 PreparedStatement

Statement로 데이터베이스와 연동할 때 연동 할 때마다 DBMS에서 다시 SQL문을 컴파일하기 때문에 속도가 느리다. 따라서 PreparedStatement를 사용하는 것이 좋은데 그 이유는 SQL문을 미리 컴파일해서 재사용하기 때문에 속도가 더 빠르기 때문이다.

PreparedStatement의 특징

  • Statement 상속받아 기존 메서드를 그대로 사용
  • PreparedStatement는 컴파일된 SQL 쿼리를 DBMS에 전달하여 성능 향상
    • Statement가 DBMS에 전달하는 SQL 쿼리는 문자열이여서 DBMS가 이해할 수 있도록 컴파일하고 실행
  • SQL 쿼리에 ?을 넣어 값 설정을 쉽게 다룰 수 있음

ConnectionPool

필요할 때마다 데이터베이스와 연동하게 되면 데이터베이스 연결하는데 시간이 많이 소요된다는 단점이 있다. 이 단점을 개선하기 위해 ConnectionPool이라는 기술이 있다. 커넥션풀은 웹앱이 실행될때 같이 데이터베이스 연결도 미리 설정한다. 프로그램은 커넥션풀에서 꺼내다 사용하므로 빠르게 데이터베이스 연산을 처리할 수 있게 된다.

톰캣은 javax.sql.DataSource를 이용해 커넥션풀 기능을 제공하며 생성할 때 이 객체에 대한 JNDI key값을 미리 설정해 놓고 웹앱에서 필요할 때 이 키 값으로 접근하여 작업을 수행한다.

0개의 댓글