Mybatis 시작하기 기본 사항(4)----입력 매핑 및 출력 매핑 1: 입력 매핑
parameterType을 통해 입력 매개변수의 유형을 지정합니다. 유형은 단순 유형, hashmap 또는 pojo일 수 있습니다. 포장 유형.
1.1. 포조의 패키징 객체 전달
1.1.1. 요구 사항 설명
사용자 정보에 대한 종합 쿼리를 완료하기 위해 전달해야 하는 쿼리 조건 복잡할 수 있습니다(사용자 정보, 제품, 주문 등과 같은 기타 정보가 포함될 수 있음).
1.1.2.포장 유형 포조 정의
위 요구 사항에 대응하여 사용자 정의 포장 유형 포조를 사용하고 포장 유형 포조에 복잡한 쿼리 조건을 래핑하는 것이 좋습니다.
쿼리 조건을 래핑하는 Pojo 클래스 UserQueryVo 클래스 코드:
1 package com.mybatis.entity 2 3 /**4 * 5 * @ClassName: UserQueryVo 6 * @Description: TODO(패키지 유형) 7 * @author warcaft 8 * @date 2015-6-30 오전 12:00:41 9 *10*/11 public class UserQueryVo {12 //Here Pack 기타 쿼리 조건 13 //사용자 쿼리 조건 14 PRivate UserCustom userCustom;15 16 public UserCustom getUserCustom() {17 return userCustom;18 }19 20 public void setUserCustom(UserCustom userCustom) {21 this.userCu stom = userCustom;22 }23 / /다른 쿼리 조건도 패키징 가능... 24 25 }
코드 보기
UserCustom 클래스 코드
1 package com.mybatis.entity 2 /**3 * 4 * @ClassName: UserCustom 5 * @Description: TODO(사용자의 확장 클래스) 6 * @author warcaft 7 * @date 2015-6-30 오전 12:02:37 8 * 9*/ 10 public class UserCustom 확장 User{11 //사용자 정보 확장 가능 12}
코드 보기
UserMapper.xml 코드
UserMapper.xml에서 사용자 정의 종합 정보 쿼리(다음을 가정함) 쿼리 조건이 매우 복잡, 고급 쿼리를 통한 관련 쿼리가 복잡함)
1 5
코드 보기
코드 보기 UserMapper.java 클래스
1 /**2 * 3 * @ClassName: UserMapper 4 * @Description: TODO(사용자 관리 매퍼 인터페이스) 5 * @author warcaft 6 * @date 2015-6-30 오전 12:14:56 7 * 8*/ 9 공용 인터페이스 UserMapper {10 // 사용자 정보 종합 쿼리 11 public List
코드 보기
Junit 단위 테스트 코드
1개 com.mybatis.dao.test; 2 3 import java.io.InputStream; 4 import java.util.Date; 5 import java.util.List; 6 7 import org.apache.ibatis.io.Resources; 8 import org.apache.ibatis.session.SqlSession; 9 가져오기 org.apache.ibatis.session.SqlSessionFactory;10 가져오기 org.apache.ibatis.session.SqlSessionFactoryBuilder;11 가져오기 org.junit.Before;12 가져오기 org.junit.Test;13 14 가져오기 com.mybatis.entity.User ;15 import com.mybatis.entity.UserCustom;16 import com.mybatis.entity.UserQueryVo;17 import com.mybatis.mapper.UserMapper;18 19 public class UserMapperTest {20 21 private SqlSessionFactory sqlSessionFactory;22 23 // 此方法是에서findUserByIdTest 지前执行24 @Before25 public void setUp()에서 예외 발생 {26 String Resource = "SqlMapConfig.xml";27 InputStream inputStream = Resources.getResourceAsStream(resource);28 // 创建SqlSessionF catory29 sqlSessionFactory = 새로운 SqlSessionFactoryBuilder().build (inputStream);30 }31 32 @Test33 public void testFindUserList() {34 SqlSession sqlSession = sqlSessionFactory.openSession();35 //创造查询条件36 UserQueryVo userQueryVo = new UserQueryVo();37 UserCustom userCustom = new UserCustom(); 38 userCustom.setSex("2");39 userCustom.setUsername("작은");40 userQueryVo.setUserCustom(userCustom);41 // 创建Usermapper对象 ,mybatis自动生成mapper代理对象42 UserMapper 매퍼 = sqlSession.getMapper(UserMapper .class);43 List
보기 코드이: 输流映射
1.resultType
使用resultType进行输流映射,性只有查询来的列name 와 pojo中的属name一致,该列才可以映射成功。
如果查询休 如果查询企来的列name과 pojo中的属性名查询는 不一致,没有创建pojo对象。
只要查询出来的列name and pojo中的属性有一一致,就会创建pojo对象。
1.1.输流简单类型
需求:用户信息的综合查询列表,通过查询总数才能实现分页功能。'
UserMapper.xml적대码
1 2 5 8 12
) usermapper.java 的 的 代码 1 public 인터페이스 usermapper {2 // 用户 信息 信息 综合 查询 3 public int findusercount (userQueryVo userQueryVo); 4}
1개의 패키지 com.mybatis.dao.test; 2 3 import java.io.InputStream; 4 import java.util.Date; 5 import java.util.List; 6 7 import org.apache.ibatis.io.Resources; 8 import org.apache.ibatis.session.SqlSession; 9 가져오기 org.apache.ibatis.session.SqlSessionFactory;10 가져오기 org.apache.ibatis.session.SqlSessionFactoryBuilder;11 가져오기 org.junit.Before;12 가져오기 org.junit.Test;13 14 가져오기 com.mybatis.entity.User ;15 import com.mybatis.entity.UserCustom;16 import com.mybatis.entity.UserQueryVo;17 import com.mybatis.mapper.UserMapper;18 19 public class UserMapperTest {20 21 private SqlSessionFactory sqlSessionFactory;22 23 // 此方法是에서findUserByIdTest 지前执行24 @Before25 public void setUp()에서 예외 발생 {26 String Resource = "SqlMapConfig.xml";27 InputStream inputStream = Resources.getResourceAsStream(resource);28 // 创建SqlSessionF catory29 sqlSessionFactory = 새로운 SqlSessionFactoryBuilder().build (inputStream);30 }31 32 @Test33 public void findUserCountTest() {34 SqlSession sqlSession = sqlSessionFactory.openSession();35 //创造查询条件36 사용자 QueryVo userQueryVo = new UserQueryVo();37 UserCustom userCustom = new UserCustom(); 38 userCustom.setSex("2");39 userCustom.setUsername("작은");40 userQueryVo.setUserCustom(userCustom);41 // 创建Usermapper对象 ,mybatis自动生成mapper代理对象42 UserMapper 매퍼 = sqlSession.getMapper(UserMapper .class);43 int count=mapper.findUserCount(userQueryVo);44 System.out.println(count);45 sqlSession.commit();46 sqlSession.close();47 }48 }
코드 보기
1.2.2.输出pojo对象list,方法返回值是List
小结:生成的动态代理对象中是根据mapper.java방법적返回值类型确결정是调사용selectOne(返回单个对象调용)还是selectList(返回集합对象调사용)
1 2 5 8 12
(3)
1 4 < ;select id="findUserByIdResultMap" 매개변수 유형="int " resultMap="userResultMap" >5 t_user에서 id id_,username username_ 선택 id=#{id}6코드 보기
위 내용은 mybatis를 시작하기 위한 기본 사항입니다(4). 입력 매핑과 출력 매핑에 대한 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!