개발자 센터/iBatis
iBatis Framework
피곤키오
2009. 12. 13. 00:11

iBatis 환경설정
http://ibatis.apache.org/ 에서 java 버전의 2.x 라이브러리를 다운로드 받는다.
압축을 풀고 /lib 폴더에 있는 ibatis-2xxxx.jar 라이브러리를 클래스패스에 추가하거나 웹어플리케이션의 WEB-INF/lib 에 저장합니다.
iBatis 특징
- 간단하면서 단순한 퍼시스턴트 프레임워크이다.
- JDBC에 비해 약 60%이상의 코드를 줄일 수 있도 간단한 설정으로 생산성을 높일 수 있다.
- join, 적재지연 등을 활용하여 데이터 접근 속도를 높일 수 있다.
- 관심사의 분리로 차후에 유지보수가 용이하다.
- 전문성을 강화하기 위한 작업의 분배가 용이하다.
- 특정 프로그래밍 언어에 종속적이지 않다.
iBatis 장점
- SQL문과 소스 코드 분리로 소스 코드의 간결함을 유지할 수 있다
- 데이터베이스 자원에 대한 제어를 자동으로 해결해 준다.
- SQL Injection으로부터 보호된다
JDBC와 iBatis 비교
다음은 JDBC와 iBatis를 비교해보도록 하겠습니다.
JDBC 이용
UserDAO.javapublic List findUserList() throws SQLException { Connection con = null; PreparedStatement pstmt = null; ResultSet rs = null; List userList = new ArrayList(); StringBuffer query = new StringBuffer(); query.append("SELECT USERID,PASSWORD,NAME,EMAIL FROM USERINFO "); try { con = source.getConnection(); pstmt = con.prepareStatement(query.toString()); rs = pstmt.executeQuery(); while (rs.next()) { User user = new User(); user.setPassword(rs.getString("PASSWORD")); user.setName(rs.getString("NAME")); user.setEmail(rs.getString("EMAIL")); user.setUserId(rs.getString("USERID")); userList.add(user); } } finally { if (rs != null) rs.close(); if (pstmt != null) pstmt.close(); if (con != null) con.close(); } return userList; }
iBatis 이용
UserDAO.java… public List findUserList() throws SQLException{ SqlMapClient sqlMapper = MySqlConfig.getSqlMapInstance(); return sqlMapper.queryForList("selectAllUser"); } …
User.xml
… <select id="selectAllUser" resultClass="User"> select * from userinfo </select> …iBatis이용시 소스가 더 간결해진 것을 확인할수 있습니다.