728x90
반응형
Data Access Object
DB의 데이터에 접근하는 객체
DAO(Data Access Object)는 DB를 사용해 데이터를 조화하거나 조작하는 기능을
전담하도록 만든 오브젝트를 말한다.
사용자는 자신이 필요한 Interface를 DAO에게 던지고 DAO는 이 인터페이스를
구현한 객체를 사용자에게 편리하게 사용 할 수 있도록 반환해줍니다.
DB에 대한 접근을 DAO가 담당하도록 하여 데이터베이스 엑세스를 DAO에서만
하게 되면 다수의 원격호출을 통한 오버헤드를 VO나 DTO를 통해 줄일 수 있고
다수의 DB 호출문제를 해결할 수 있습니다. 또한 단순히 읽기만 하는 연산이므로
트랜잭션 간의 오버헤드를 감소할 수 있습니다.
Mapper Interface
- mapper 파일에 기재된 SQL을 호출하기 위한 인터페이스
- 매핑파일에 있는 SQL을 인터페이스로 호출한다.
인터페이스
/* TestDAO */ (인터페이스)
public interface TestDAO {
// 조회
public TestVO read(int num) throws Exception;
}
인터페이스를 상속받은 클래스
/* TestDAOImpl (TestDAO 인터페이스를 상속받은 Impl) */
@Repository
public class TestDAOImpl implements TestDAO {
// 마이바티스
@Inject
private SqlSession sql;
// 매퍼
// mapper에 명시해둔 namespace와 동일한 문자열
private String namespace = "com.yoyo.mappers.testMapper";
@Override
public TestVO read(int num) throws Exception {
return sql.selectOne(namespace + ".read", num);
}
}
mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yoyo.mappers.testMapper">
<!-- 조회 -->
<select id="read" resultType="com.yoyo.domain.TestVO">
select num, test from test where num = #{num}
</select>
</mapper>
728x90
반응형
'Java' 카테고리의 다른 글
Spring - VO (0) | 2021.01.12 |
---|
댓글