sqlSession.getMapper(UserMapper.class)의 사용 방식

설명:1.본 고 에서 사용 한 Mybatis 프레임 워 크 버 전 은 my batis-3.0.4.jar 2 로 간단 한 User bean 을 지속 적 으로 예 로 들 어 User 실체 류 의 코드 는 다음 과 같다.
 package bean;
     
    public class User {
        private String name;
        private Integer age;
       
        public String getName() {
           return name;
        }
        public void setName(String name) {
           this.name = name;
        }
        public Integer getAge() {
           return age;
        }
        public void setAge(Integer age) {
           this.age = age;
        }
        public User(String name, Integer age) {
           super();
           this.name = name;
           this.age = age;
        }
       
        public User() {
           super();
        }  //            ,    UserMapper.xml    ,       ,        User  
    } 

  User 실체의 맵 기 는 UserMapper(인터페이스)라 고 이름 을 지 었 는데 그 코드 는 다음 과 같다.
   package Mapper;
    import bean.User;
     
    public interface UserMapper {
        public void insertUser(User user);
        public User getUser(String name);
    } 
 
이 인 터 페 이 스 는 Hibernate 의 DAO 층 인터페이스 와 유사 합 니 다.유일 하 게 다른 것 은 MyBatis 에서 이 인터페이스 만 설명 하면 됩 니 다.이 를 실현 할 필요 가 없습니다.UserMapper 맵 기 에 대응 하 는 설정 파일 은 다음 과 같 습 니 다.(Hibernate 의 User.hbm.xml 에 해당 합 니 다.물론 이 안 은 속성 맵 필드 가 아니 라 맵 기 에서 여러 가지 방법 으로 대응 하 는 sql 구문 입 니 다)
 
    
    
    
        
           insert into vincent_user(name,age) values(#{name},#{age})
           
        
    
        
        
    
 
MyBatis 의 프로필 이름 은 mybatis-config.xml 입 니 다.설정 코드 는 다음 과 같 습 니 다.(Hibernate 의 hibernate.cfg.xml 과 비슷 합 니 다.)

    
     
    
        
            
            
            
            
        
        
           
        
        
           
               
               
                  
                  
                  
                  
               
           
        
        
            
        
     
 
설정 파일 을 불 러 와 sqlSession Factory 의 도구 클래스 를 가 져 옵 니 다.
package Util;
     
    import java.io.IOException;
    import java.io.Reader;
     
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
     
    public class MyBatisUtil  {
        private  final static SqlSessionFactory sqlSessionFactory;
        static {
           String resource = "resource/mybatis-config.xml";
           Reader reader = null;
           try {
               reader = Resources.getResourceAsReader(resource);
           } catch (IOException e) {
               System.out.println(e.getMessage());
              
           }
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        }
       
        public static SqlSessionFactory getSqlSessionFactory() {
           return sqlSessionFactory;
        }
    }

 
테스트 코드 는 다음 과 같 습 니 다:
 package TestMapper;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.junit.Test;
     
    public class TestMapper {
        static SqlSessionFactory sqlSessionFactory = null;
        static {
           sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
        }
       
        @Test
        public void testAdd() {
           SqlSession sqlSession = sqlSessionFactory.openSession();
           try {
               UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
               User user = new User("tom",new Integer(5));
               userMapper.insertUser(user);
               sqlSession.commit();//       ,           
           } finally {
               sqlSession.close();
           }
        }
       
        @Test
        public void getUser() {
           SqlSession sqlSession = sqlSessionFactory.openSession();
           try {
               UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
               User user = userMapper.getUser("jun");
               System.out.println("name: "+user.getName()+"|age: "+user.getAge());
           } finally {
               sqlSession.close();
           }
        }
     
    }
 

좋은 웹페이지 즐겨찾기