-
210705_2(iBatis)Spring 2021. 7. 5. 18:02
iBatis
Spring iBatis -- sql 프레임 워크 : 틀, 특정작업에 맞도록 이미 작업되어 있는 틀에 맞추어서 구현하는 것.
결론 : 메뉴얼대로 작업한다
ibatis는 일명 sql매퍼라고 불리우고, DAO + DTO에 관련된 framework라고 생각하면 된다.
즉, sql작성을 xml문서에서 하고 집중관리 하는 것이다.
rs---> bean(dto) 저장 --> ArrayList(List) 저장 등등의 작업을 자동화 시킨다.
1) pom.xml에 ibatis lib를 검색하여 집어 넣는다.
연결관계
서블릿설정 빈생성
로그설정 DI
필터설정 AOP
유연성 -----------> sql Mapper ------> SQL문장
web.xml ---> 스프링환경.xml ---> ibatis config.xml ---> ibatis Mapper.xml
-------------------------java : 각각 필요한 어노테이션을 암기해야함
@각종annotation @각종annotation @각종annotation
bean java --------> spring java -------> ibatis java --->
<dependency> <groupId>org.apache.ibatis</groupId> <artifactId>ibatis-sqlmap</artifactId> <version>2.3.4.726</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-ibatis --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-ibatis</artifactId> <version>2.0.8</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>5.2.0.RELEASE</version> </dependency>
oracle.sql
create table emp( empno decimal(3), ename varchar(20), job varchar(20), sal decimal(6) ); insert into emp values(1,'홀길동','SALES',250); insert into emp values(2,'이순신','ANALYST',250); insert into emp values(3,'유관순','ACCOUNTING',250); insert into emp values(4,'강감찬','ANALYST',250); commit select * from emp; drop table emp;
employee.java
package ex.vo1; public class Employee { int empno, sal; String ename, job; public int getEmpno() { return empno; } public void setEmpno(int empno) { this.empno = empno; } public int getSal() { return sal; } public void setSal(int sal) { this.sal = sal; } public String getEname() { return ename; } public void setEname(String ename) { this.ename = ename; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } }
sqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <!-- db연동 --> <sqlMapConfig> <transactionManager type="JDBC" commitRequired="false"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:XE" /> <property name="JDBC.Username" value="jspuser" /> <property name="JDBC.Password" value="1234" /> </dataSource> </transactionManager> <!-- --> <sqlMap resource="ex1/Employee.xml"/> </sqlMapConfig>
Employee.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <!-- db연동 --> <sqlMapConfig> <transactionManager type="JDBC" commitRequired="false"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@localhost:1521:XE" /> <property name="JDBC.Username" value="jspuser" /> <property name="JDBC.Password" value="1234" /> </dataSource> </transactionManager> <!-- --> <sqlMap resource="ex1/Employee.xml"/> </sqlMapConfig>
EmployeeTest.java
package ex1; import java.io.Reader; import java.sql.SQLException; import java.util.List; import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; import ex1.vo.Employee; public class EmployeeTest { public static Reader reader; public static SqlMapClient sqlMapper; static { try { reader = Resources.getResourceAsReader("ex1/sqlMapConfig.xml"); sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); reader.close(); } catch (Exception e) { // TODO: handle exception System.out.println(e.toString()); } } public static List<Employee> getSearchJob(String job)throws SQLException { return sqlMapper.queryForList("searchJob", job); } public static void main(String[] args) throws SQLException { // TODO Auto-generated method stub List<Employee> list = getSearchJob("ANALYST"); for(Employee e : list ) { System.out.print(e.getEmpno()+" "); System.out.print(e.getEname()+" "); System.out.print(e.getJob()+" "); System.out.println(e.getSal()+" "); } } }
ibatis : 버전이 2.x 이고 -- xml 기법
mybatis : 버전이 3.x 이다. -- 어노테이션
'Spring' 카테고리의 다른 글
210706_1(iBatis) (0) 2021.07.06 210702_1(Spring) (0) 2021.07.02 210701_1(Spring_DI적용하기) (0) 2021.07.01 210630_1(Spring) (0) 2021.06.30 210629_1(Spring) (0) 2021.06.29