목록분류 전체보기 (309)
진취적 삶
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 : JDBC 연동에 필요한 기능 제공 tomcat-jdbc : DB 커넥션풀 기능 제공 mysql-connector-java : MYSQL 연결에 필요한 JDBC 드라이버 제공 커넥션 풀 : 최초 연결에 따른 부하를 줄이기 위해 사용하는것이 커넥션 풀 커넥션 풀은 일정 개수의 DB커넥션을 미리 만들어두는 기법이다 . DB커넥션이 필요한 프로그램은 커넥션 풀에서 커넥션을 가져와 사용한 뒤 커넥션을 다시 풀에 반납한다. 커넥션도 일정 개수로 유지해서 DBMS에 대한 부하를 일정 수..
8.3.1 Tomcat JDBC의 주요 프로퍼티 tomcat JDBC 모듈의 pool.DataSource 클래스는 커넥션 풀 기능을 제공 커넥션 풀은 커넥션을 생성하고 유지한다. 커넥션 풀에 커넥션을 요청하면 해당 커넥션은 활성 상태가 된다. 커넥션을 다시 커넥션 풀에 반환하면 idel 상태가 된다. datasource.getConnection() : pool에서 커넥션을 가져온다. 커넥션을 종료하면 실제 커넥션을 끊지 않고 풀에 반환한다. maxActive는 활성 상태가 가능한 최대 커넥션 개수 maxWait 커넥션 반환 대기 시간 커넥션 풀을 사용하면 미리 커넥션을 생성했다가 필요할 때에 커넥션을 꺼내 쓰므로 구하는 시간이 줄어 전체 응답 시간도 짧아진다. 커넥션 풀을 초기화 할때는 최소 수준의 커넥..
8.4.1 JdbcTemplate 생성 public class AppCtx { @Bean(destroyMethod = "close") public DataSource dataSource(){ DataSource ds = new DataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost/spring5fs?characterEncoding=utf8"); ds.setUsername("spring5"); ds.setPassword("spring5"); ds.setInitialSize(2); ds.setMaxActive(10); ds.setTestWhileIdle(true); ds.setMinEvicta..
public class MainForMemberDao { private static MemberDao memberDao; public static void main(String[] args) throws WrongIdPasswordException { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppCtx.class); memberDao = ctx.getBean(MemberDao.class); selectAll(); updateMember(); insertMember(); } private static void selectAll() { System.out.println("----------seletAll"..
SQL 문법이 잘못됐을때 발생한 메시지는 BadSqlGrammerException 클래스임을 확인 스프링은 JDBC 뿐만 아니라 JPA, 하이버네이트 등에 대한 연동을 지원하고 MyBatis 는 자체적으로 스프링 연동 기능을 제공한다. 스프링은 DuplicateKeyException , QueryTimeoutException 등 DataAccessException 을 상속한 다양한 익셉션 클래스를 제공한다.
이메일 인증 시점에 테이블의 데이터를 변경하는 기능은 다음 코드처럼 회원정보에서 이메일을 수정하고 인증 상태를 변경하는 두 쿼리를 실행 jdbcTemplate.update("update MEMBER set EMAIL = ?" ,email); jdbcTemplate.update("insert into EMAIL_AUTH values(?,'T')" ,email); 중복이나 코드를 잘못 수정/배포 해서 두번째 쿼리에서 문제가 생겼을때 첫번째 ㅋ쿼리 실행 결과도 취소되야 올바른 상태를 유지한다. 두개 이상의 쿼리를 한 작업으로 실행해야 할 때 사용하는 것이 트랜잭션이다 . 트랜잭션은 여러 쿼리를 논리적으로 하나의 작업으로 묶어준다 . 트랜잭션으로 묶인 쿼리 중 하나라도 실패하면 전체 쿼리를 실패로 간주하고 실패..
link_preview
org.aspectj aspectjweaver 1.8.13 aspectjweaver 는 AOP를 설정하는데 필요한 애노테이션을 제공한다. package chap07; public interface Calculator { public long factorial(long num); } public class ImpeCalculator implements Calculator{ @Override public long factorial(long num) { long result =1 ; for (long i =1 ; i