JDBC

· Spring
트랜잭션 트랜잭션은 두 개 이상의 쿼리를 한 작업으로 실행해야 할 때 사용하는 것이 트랜잭션(transaction)입니다. 트랜잭션은 여러 쿼리를 논리적으로 하나의 작업으로 묶어줍니다. 한 트랜잭션으로 묶인 쿼리 중 하나라도 실패한다면 전체 쿼리를 실패로 간주하고 실패 이전에 실행한 쿼리를 취소합니다. 롤백 (rollback) : 쿼리 실행 결과를 취소하고 DB를 기존 상태로 되돌리는 것 커밋 (commit) : 트랜잭션에 묶인 모든 쿼리가 성공해서 쿼리 결과를 DB에 실제로 반영하는 것 트랜잭션을 시작하면 트랜잭션을 커밋하거나 롤백할 때까지 실행한 쿼리들이 하나의 작업 단위가 됩니다. JDBC는 Connection의 setAutoCommit(false)를 이용해서 트랜잭션을 시작하고 commit()과 ..
· Spring
이번 시간에는 Spring의 익셉션 변환처리에 대해 알아보겠습니다. SQL 문법이 잘못됐을 때 발생한 메시지를 보면 익셉션 클래스가 org.springframework.jdbc 에 속한 BadSqlGrammarException 클래스임을 알 수 있습니다. 해당 익셉션이 발생한 이유는 MySQLSyntaxErrorException이 발생했기 때문입니다. org.springframework.jdbc.BadSqlGrammarException: ... Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: ... 해당 익셉션이 발생한 코드를 살펴보면 jdbcTemplate.update((Connection conn) -> { PreparedS..
· Spring
이번 시간에는 Spring DB 연동 과정에서 발생할 수 있는 익셉션에 대해서 알아보겠습니다. SQLException DB 연결 정보가 올바르지 않으면 나타나는 익셉션입니다. DB 연결 정보는 DataSource에 있으므로 DataSource를 잘못 설정하면 연결을 구할 수 없다는 익셉션(CannotGetJdbcConnecdtionException)이 발생합니다. 예를 들어, 데이터베이스 암호를 잘못 설정하여 나타는 메시지는 다음과 같습니다. CannotGetJdbcConnection: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Access denied for user 'spring5'@'localhost'(u..
· Spring
스프링을 사용하면 DataSource나 Connection, Statemement, ResultSet을 직접 사용하지 않고, JdbcTemplate을 이용해서 편리하게 쿼리를 실행할 수 있습니다. JDBCTemplate 생성하기 package spring; import java.util.Collection; import org.apache.tomcat.jdbc.pool.DataSource; import org.springframework.jdbc.core.JdbcTemplate; public class MemberDao { private JdbcTemplate jdbcTemplate; public MemberDao(DataSource dataSource) { this.jdbcTemplate = new J..
· Spring
스프링에서 JDBC를 사용해려면 pom.xml을 다음과 같이 구성해야 합니다. org.springframework spring-context 5.0.2.RELEASE org.springframework spring-jdbc 5.0.2.RELEASE org.apache.tomcat tomcat-jdbc 8.5.27 mysql mysql-connector-java 5.1.45 * spring-jdbc : JdbcTemplate 등 JDBC 연동에 필요한 기능을 제공합니다. * tomca-jdbc : DB 커넥션풀 기능을 제공합니다. * mysql-connector-java : MySQL 연결에 필요한 JDBC 드라이버를 제공합니다. 스프링이 제공하는 트랜잭션 기능을 사용하려면 spring-tx 모듈이 필요한..
· Spring
JDBC 프로그래밍의 단점을 보완하는 스프링 JDBC API를 이용하면 DB 연동에 필요한 Connection을 구한 다음 쿼리를 실행하기 위한 PreparedStatement를 생성합니다. 그리고 쿼리를 실행한 뒤에는 finally 블록에서 ResultSet, PreparedStatement, Connection을 닫습니다. JDBC API를 이용한 DB 연동 코드 구조 Member member; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost/spring5fs", "spring5", "spring5..
runnnerDevHong
'JDBC' 태그의 글 목록