on
DB Access 방법 (CRUD)
DB Access 방법 (CRUD)
728x90
BasicDataSource
connectionPool을 가지고 있다.
데이터베이스에서 밀리 Connection객체를 만들고 보관, 관리하고 있다.
미리 connection을 맺고 있기 때문에 connection에 대한 시간이 줄어 든다.
common-dbcp 라이브러리가 제공하는 BasicDataSource는 가장 일반적으로 많이 사용되는 DataSource의 구현체이다.
jdbc드라이버의 클래스명, 데이터베이스 접속 URL, 사용자명, 비밀번호를 제공해야한다.
종류가 많고, DataSource를 구현한 객체이면 된다.
JdbcTemplate
int update(String sql, object...args) insert, update, delete
T queryForObject(String sql, object...args) 객체 한건에 대한 select
List query(String sql, obejct...args) 객체 여러건에 대한 select
DB access를 위하여 DataSource에 의존하고 있다.
커넥션을 제공하는 ConnectionPool객체를 제공받아야한다.
object ...args는 가변길이 매개변수를 의미한다.
DB Access의 작업이 쉬워진다. spring은 SQL Exception이 발생하지않고, DataAccessException이 발생한다.
EmployeeDao
SQL실행작업을 지원하는 JdbcTemplate객체를 제공받아야한다.
제공받고 SQL을 여기서 작성한다.
EmployeeService
EmployeeDao는 직원관리에 필요한 데이터베이스 엑세스를 지원한는 인터페이스다.
스프링 컨테이너에 빈으로 등록된 EmployeeDao 인터페이스의 구현객체를 의존성 주입을 사용해서 제공받는다.
업무로직 구현에 필요한 데이터베이스 엑세스 작업을 지원하는 EmployeeDaoImpl 객체를 제공받아야한다.
스프링 프레임 워크의 DB Access
javax.SQL.DataSource인터페이스를 구현한 ConnectionPool구현객체가 반드시 필요하다. commons-dbcp라이브러리가 반드시 필요하다.
모든 데이터베이스엑세스 작업 중 오류가 발생하면 DataAccessException이 발생한다. DataAccessException은 RuntimeException의 하위 클래스다. DataAccessException은 unchecked예외이다. try-catch작업을 하지 않아도된다. DataAccessException은 상속받는 다양한 하위 클래스가 존재한다. DB오류코드를 조사하고, 그에 해당하는 Exception을 발생시킨다.
spring Framwork의 특징 다양한 xxxTemplate, xxxDaoSupport클래스를 제공한다. 다양한 데이터베이스 엑세스 작업을 쉽게 구현할 수 있도록, 데이터베이스 엑세스 기술별로 다양한 xxxTemplate, xxxDaoSupport클래스를 제공한다. jdbc기술 JdbcTemplate JdbcDaoSupport ibatis기술 SqlmapClientDaoSupport SqlmapClientTemplate hibernate기술 HibernateTemplate HibernateDaoSupport 다양한 데이터베이스 엑세스 프레임워크와 연동을 지원한다. ibatis(spring 4버젼부터 제외), myBatis, Hibernate, JPA 선언적 트랜잭션처리를 지원한다. 트랜잭션처리와 관련된 코드를 직접 장성하는 것이 아니라 트랜잭션 처리가 필요한 클래스나 메소드에 어노테이션을 부착하거나 트랜잭션처리가 필요한 클래스나 패키지를 지정하기만 하면 트랜젝션 처리가 자동으로 지원된다. spring에서는 AOP와 관련이 있어서 지원이 가능하다. 코딩을 작게 하기 위해서 만들어 놓은 장치이다.
Select는 다른 SQL형태를 가지고 있다.
728x90
from http://lionpower.tistory.com/288 by ccl(A) rewrite - 2021-12-28 16:27:24