분류 전체보기

· 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
[Spring] Spring DB - 쿼리실행 Spring에서 제공하는 쿼리 실행 방법을 알아보겠습니다. JdbcTemplate을 이용한 변경 쿼리 실행 INSERT, UPDATE, DELETE 쿼리는 update() 메서드를 사용합니다. * int update(String sql) * int update(String sql, Object... args muscleking3426.tistory.com 이전 포스팅에서 작성했던 코드를 테스트해보는 시간을 가지겠습니다. 간단한 메인 클래스를 작성해서 테스트해봅시다. 설정 클래스 @Configuration public class AppCtx { @Bean(destroyMethod = "close") public DataSource dataSource() { D..
· Spring
Spring에서 제공하는 쿼리 실행 방법을 알아보겠습니다. JdbcTemplate을 이용한 변경 쿼리 실행 INSERT, UPDATE, DELETE 쿼리는 update() 메서드를 사용합니다. * int update(String sql) * int update(String sql, Object... args) update() 메서드는 쿼리 실행 결과로 변경된 행의 개수를 리턴합니다. update() 메서드의 사용 예를 알아봅시다. public class MemberDao { private JdbcTemplate jdbcTemplate; ... public void update(Member member) { jdbcTemplate.update( "update MEMBER set NAME = ?, PASSW..
· Spring
결과가 1행인 경우 사용할 수 있는 qureyForObject 메서드에 대해 알아봅시다. 결과가 1행인 경우 사용할 수 있는 qureyForObject() 메서드 다음은 query() 메서드를 사용한 코드입니다. public int count(){ List results = jdbcTemplate.query( "select count(*) from MEMBER", new RowMapper(){ @Override public Integer mapRow(Resultset rs, int rowNum) throws SQLException{ return rs.getInt(1); } }); return results.get(0); } count(*) 쿼리는 결과가 한 행뿐이니 쿼리 결과를 List로 받기보다는 In..
· 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
Tomcat JDBC의 주요 프로퍼티 Tomcat JDBC 모듈의 DataSource(org.apache.tomcat.jdbc.pool.DataSource) 클래스는 커넥션 풀 기능을 제공하는 DataSource 구현 클래스입니다. DataSource 클래스는 커넥션을 몇 개 만들지 지정할 수 있는 메서드를 제공합니다. setInitialSize(int) 커넥션 풀을 초기화 할때 생성할 초기 커넥션 개수 지정 기본값 : 10 setMaxActive(int) 커넥션 풀에서 가져올 수 있는 최대 커넥션 개수 지정 기본 값 : 100 setMaxIdle(int) 커넥션 풀에 유지할 수 있는 최대 커넥션 개수 지정 기본값 : maxActive setMinIdle(int) 커넥션 풀에 유지할 최소 커넥션 개수 지..
· Algorithm
1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 해당 문제는 N * M 행렬이 주어졌을 때, 8 * 8 정사각형으로 잘랐을 때, 자른 정사각형들 영역 중에, 가장 최소로 칸을 색칠하는 값을 구해야 하는 문제입니다. row : N / col : M 으로 했을 때 아래와 같이 체스판을 그릴 수가 있습니다. board[N][M] 8 * 8 의 정사각형으로 잘랐을 때, 나올 수 있는 정사각형 모양의 체스판 중 가장 다시 칠해야 하는 최솟값을 찾으면 됩니다. [0][0] 자리에 B 또는 W 색이 올 수 있기 때..
· 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
'분류 전체보기' 카테고리의 글 목록 (4 Page)