ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.