Mapper 동적 에이전트 방식

Mapper 동적 대리 방식 은 네 가지 원칙 에 따라 인터페이스 와 실현 류 를 대체 할 수 있 는 방법 을 따른다.
Mapper 인터페이스 개발 은 다음 과 같은 규범 을 따라 야 합 니 다. 1. Mapper. xml 파일 의 namespace 는 mapper 인터페이스의 클래스 경로 와 같 습 니 다.2. Mapper 인터페이스 방법 명 은 Mapper. xml 에서 정의 하 는 모든 statement 의 id 와 같 습 니 다. 3. Mapper 인터페이스 방법의 입력 매개 변수 유형 과 mapper. xml 에서 정의 하 는 모든 sql 의 parameterType 유형 이 같 습 니 다. 4. Mapper 인터페이스 방법의 출력 매개 변수 유형 과 mapper. xml 에서 정의 하 는 모든 sql 의 resultType 유형 이 같은 UserMapper. xml 설정 파일 내용:?xml version="1.0" encoding="UTF-8" ?> br> PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> resultType="cn.zyh.mybatis.pojo.User"> select * from user where id = #{id} resultType="cn.zyh.mybatis.pojo.User"> select * from user where username like '%${value}%' resultType="int"> select last_insert_id() insert into user(username,birthday,sex,address) values (#{username},#{birthday},#{sex},#{address}); UserMapper 인터페이스 코드 만 들 기: public interface UserMapper {/ * * id 조회 * * @ param id * @ return * / User query UserById (int id);
/**
 *          
 * 
 * @param username
 * @return
 */
List queryUserByUsername(String username);

/**
 *     
 * 
 * @param user
 */
void saveUser(User user);

} SqlMapConfig. xml 파일 을 수정 하고 다음 과 같은 내용 을 추가 합 니 다. 작 성 된 테스트 방법 은 다음 과 같 습 니 다. Public class UserMapperTest {private SqlSession Factory sqlSession Factory;
@Before
public void init() throws Exception {
    //   SqlSessionFactoryBuilder
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    //   SqlMapConfig.xml    
    InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
    //   SqlsessionFactory
    this.sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
}

@Test
public void testQueryUserById() {
    //   sqlSession, spring    spring  
    SqlSession sqlSession = this.sqlSessionFactory.openSession();

    //  sqlSession   Mapper       
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    //       
    User user = userMapper.queryUserById(1);
    System.out.println(user);

    //  spring    spring  
    sqlSession.close();
}

@Test
public void testQueryUserByUsername() {
    //   sqlSession, spring    spring  
    SqlSession sqlSession = this.sqlSessionFactory.openSession();

    //  sqlSession   Mapper       
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    //       
    List list = userMapper.queryUserByUsername(" ");
    for (User user : list) {
        System.out.println(user);
    }

    //  spring    spring  
    sqlSession.close();
}

@Test
public void testSaveUser() {
    //   sqlSession, spring    spring  
    SqlSession sqlSession = this.sqlSessionFactory.openSession();

    //  sqlSession   Mapper       
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    //       
    User user = new User();
    user.setUsername("  ");
    user.setBirthday(new Date());
    user.setSex("1");
    user.setAddress("  ");
    //       
    userMapper.saveUser(user);
    System.out.println(user);


    //  spring    spring  
    sqlSession.commit();
    sqlSession.close();
}

} selectOne 과 selectList 동적 에이전트 대상 이 sqlSession. selectOne () 과 sqlSession. selectList () 를 호출 하 는 것 은 mapper 인터페이스 방법의 반환 값 에 따라 결정 되 며, list 를 되 돌려 주면 selectList 방법 을 호출 하고, 한 대상 을 되 돌려 주면 selectOne 방법 을 호출 합 니 다.
namespace my batis 는 공식 적 으로 mapper 프 록 시 방법 으로 mapper 인 터 페 이 스 를 개발 하 는 것 을 추천 합 니 다. 프로그래머 는 mapper 인터페이스 실현 류 를 작성 하지 않 고 mapper 프 록 시 방법 을 사용 할 때 파 라 메 터 를 입력 하면 pojo 포장 대상 이나 map 대상 을 사용 하여 dao 의 유 니 버 설 성 을 확보 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기