BackEnd

BeanPropertyRowMapper BeanPropertyRowMapper를 사용하면 기존에 RowMapper 만드는 방식을 사용하지 않고 RowMapper를 바로 만들 수 있다. 기존에 RowMapper를 만드는 방식은 다음과 같이 mapping logic을 직접 작성해줘야 했다. private RowMapper roleMapper = new RowMapper() { @Override public Role mapRow(ResultSet rs, int rowNum) throws SQLException{ Role role = new Role(); role.setRoleId(rs.getInt("role_id")); role.setDescription(rs.getString("description")); ..
1. NamedParameterJdbcTemplate란? JdbcTemplate 객체를 사용하면 "?"를 통해 바인딩을 수행한다. 이때 우리는 "?"에 전달될 인자들을 메서드에 순서대로 전달해야 한다. 이와 같이 작업을 할 경우 가독성이 떨어지며 실수할 여지가 많다. 이를 위해 "?"대시 ":변수명"을 이용하여 처리하도록 해주는 것이 NamedParameterJdbcTemplate이다. 선언 방법은 JdbcTemplate 객체와 동일하게 DateSource 객체를 넘겨주면 된다. private NamedParameterJdbcTemplate namedJdbcTemplate; @Autowired public RoleDao(DataSource dataSource) { this.namedJdbcTemplate..
이전에 Jdbc Template이란 무엇이고 Query를 어떻게 전달하여 결과를 가져올 수 있는지 확인했다. https://ngp9440.tistory.com/54 [Spring JDBC] Jdbc Template이란? (queryForObject, query) 1. JDBC Template이란? JDBC Template은 개발자가 JDBC 기술을 쉽게 사용할 수 있도록 도와주는 클래스로 아래와 같은 작업을 대신 처리한다. Connection 획득 statement 생성 및 실행 Connection, statement, resultset 종 ngp9440.tistory.com 이번에는 Insert, Update, Delete는 어떻게 수행할 수 있는지에 대해 알아보고자 한다. 해당 쿼리들을 수행하기 위해..
1. JDBC Template이란? JDBC Template은 개발자가 JDBC 기술을 쉽게 사용할 수 있도록 도와주는 클래스로 아래와 같은 작업을 대신 처리한다. Connection 획득 statement 생성 및 실행 Connection, statement, resultset 종료 SQL 조회, 업데이트, ResultSet 반복호출 등 JDBC 예외 발생시 org.springframework.dao 패키지에 정의된 일반 예외로 변환 위와 같은 기능들을 대신 해주기 때문에 이전에 작성한 JDBC 코드들은 훨씬 간편해진다. JDBC Template은 아래와 같이 선언한다. @Repository public class RoleDao { private JdbcTemplate jdbcTemplate; @Aut..
1. pom.xml 설정 먼저 property에 아래와 같이 원하는 버전을 설정한다. UTF-8 4.3.5.RELEASE 8.0.31 2.1.1 이후 Maven 프로젝트의 pom.xml 설정을 해야한다. 먼저 Apache의 Connection Pool을 위해 common dbcp를 추가하기 위해서는 다음 코드를 추가해야 한다. org.apache.commons commons-dbcp2 ${commons.dbcp.version} 그리고 mysql을 사용하기 위해 프로그램과 db를 연결할 때 사용하는 MySQL Connector를 추가하기 위해 아래 코드를 추가한다. 이때 본인의 버전에 맞는 mysql을 추가하면 된다. mysql mysql-connector-java ${mysql.version} 그리고 필..
1. Connection Pool이란? JDBC를 통해 DB 관련 처리를 하려면 데이터베이스의 드라이버를 로드하고 Connection 객체를 받아와야 한다. 즉, 아래 코드와 같은 과정을 거친다. Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection(dbUrl, dbUser, dbPasswd); 즉, 우리는 매번 사용자가 요청을 하면 드라이버를 로드하고 Connection 객체를 생성하고 닫는 비효율적인 과정을 거쳐야 한다. 이때 우리는 Connection Pool이라는 방법을 사용할 수 있다. Connection Pool은 DB와 연결된 Connection 객체를 미리 생성하여 관리하는 방식으로 다음과 같은 과정..
· BackEnd/JDBC
1. DAO DAO는 Data Access Object의 약자로 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 객체다. 즉, 데이터베이스의 data에 접근하기 위한 객체로 보면 된다. DAO는 DataBase 접근을 위한 로직과 비지니스 로직을 분리하기 위해 사용한다. 2. DTO DTO는 Data Transfer Object의 약자로 계층간 데이터 교환을 위한 JavaBeans다. 이때 계층이란 컨트롤러 뷰, 비지니스 계층, 퍼시스턴스 계층을 의미하는데 이들은 이후 MVC 패턴을 공부할 때 다룬다. 일반적으로 DTO는 로직을 가지고 있지 않은 순수한 데이터 객체며 getter와 setter 메소드만을 가진다. 또한 몇 가지 Object 메소드를 오버라이딩 할 수도 있다. 3. VO VO는 Valu..
1. 어노테이션 자바에서 어노테이션은 특수한 의미를 부여하는 역할을 수행한다. 따라서 Java config를 활용하기 위해 몇 가지 어노테이션을 살펴보자. @Configuration 스프링 설정 클래스를 선언하는 어노테이션 @Bean Bean을 정의하는 어노테이션 @ComponentScan @Controller, @Service, @Repository, @Component 어노테이션이 붙은 클래스를 찾아 컨테이너에 등록하는 어노테이션 @Component ComponentScan의 대상이 되는 어노테이션 중 하나로 주로 유틸, 기타 지원 클래스에 붙이는 어노테이션 @Autowired 주입 대상이되는 bean을 컨테이너에 찾아 주입하는 어노테이션 이때 우리는 두 가지 방식으로 나누어 Bean을 등록할 수 있..
코딩마루
'BackEnd' 카테고리의 글 목록 (9 Page)