Bases de démarrage de Mybatis (4) ----Mappage d'entrée et mappage de sortie 1 : Mappage d'entrée
Spécifiez le type de paramètres d'entrée via ParameterType. Le type peut être un type simple, un hashmap ou un pojo. type d'emballage.
1.1. Transmettre l'objet d'emballage de pojo
1.1.1. Description de l'exigence
Pour compléter la requête complète des informations utilisateur, les conditions de requête qui doivent être transmises peut être complexe (peut inclure des informations sur l'utilisateur, d'autres informations, telles que des produits, des commandes, etc.).
1.1.2. Définir le pojo de type d'emballage
En réponse aux exigences ci-dessus, il est recommandé d'utiliser un pojo de type d'emballage personnalisé et d'envelopper les conditions de requête complexes dans le pojo de type d'emballage.
Classe Pojo Code de classe UserQueryVo qui encapsule les conditions de requête :
1 package com.mybatis.entity ; 2 3 /**4 * 5 * @ClassName : UserQueryVo 6 * @Description : TODO (type de package) 7 * @author warcaft 8 * @date 2015-6-30 00:00:41 AM 9 *10*/11 classe publique UserQueryVo {12 //Here Pack autres conditions de requête 13 //Conditions de requête utilisateur 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 / /D'autres conditions de requête peuvent être empaquetées... 24 25 }
Afficher le code
Code de classe UserCustom
1 package com.mybatis.entity 2 /**3 * 4 * @ClassName : UserCustom 5 * @Description : TODO (classe d'extension de l'utilisateur) 6 * @author warcaft 7 * @date 2015-6-30 00:02:37 AM 8 * 9*/ 10 classe publique UserCustom extends User{11 //Peut étendre les informations utilisateur 12}
Afficher le code
Code de UserMapper.xml
Définir les utilisateurs dans UserMapper.xml Requête d'informations complète (en supposant que les conditions de requête sont complexes, requêtes associées complexes via des requêtes avancées)
1 5
Afficher le code
Code du Classe UserMapper.java
1 /**2 * 3 * @ClassName : UserMapper 4 * @Description : TODO (interface de mappage de gestion des utilisateurs) 5 * @author warcaft 6 * @date 2015-6-30 00:14:56 AM 7 * 8*/ 9 interface publique UserMapper {10 // Requête complète des informations utilisateur 11 public List
View Code
Code de test unitaire Junit
1 paquet com.mybatis.dao.test ; 2 3 importer java.io.InputStream ; 4 importer java.util.Date ; 5 importer java.util.List ; 6 7 importer org.apache.ibatis.io.Resources ; 8 importer org.apache.ibatis.session.SqlSession; 9 importer org.apache.ibatis.session.SqlSessionFactory;10 importer org.apache.ibatis.session.SqlSessionFactoryBuilder;11 importer org.junit.Before;12 importer org.junit.Test;13 14 importer 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() renvoie une exception {26 String resource = "SqlMapConfig.xml";27 // 创建SqlSessionFcatory29 sqlSessionFactory = new 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 //象42 UserMapper mapper = sqlSession.getMapper(UserMapper .class);43 List
View Code二:输出映射
1.resultType
使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。
如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象。
只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象。
1.1.输出简单类型
需求:用户信息的综合查询列表,通过查询总数才能实现分页功能。'
UserMapper.xml的代码
1 2 5 8 12
UserMapper.java的代码
1 interface publique UserMapper {2 //用户信息综合查询总数3 public int findUserCount(UserQueryVo userQueryVo);4 }
Junit测试代码
1 paquet com.mybatis.dao.test ; 2 3 importer java.io.InputStream ; 4 importer java.util.Date ; 5 importer java.util.List ; 6 7 importer org.apache.ibatis.io.Resources ; 8 importer org.apache.ibatis.session.SqlSession; 9 importer org.apache.ibatis.session.SqlSessionFactory;10 importer org.apache.ibatis.session.SqlSessionFactoryBuilder;11 importer org.junit.Before;12 importer org.junit.Test;13 14 importer 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() renvoie une exception {26 String resource = "SqlMapConfig.xml";27 // 创建SqlSessionFcatory29 sqlSessionFactory = new SqlSessionFactoryBuilder().build (inputStream);30 }31 32 @Test33 public void findUserCountTest() {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 //象42 UserMapper mapper = sqlSession.getMapper(UserMapper .class);43 int count=mapper.findUserCount(userQueryVo);44 System.out.println(count);45 sqlSession.commit();46 sqlSession.close();47 }48 >
Afficher le code
小结:查询出来的结果集只有一行一列,可以使用简单类型进行输出映射。
1.2.输出po jo对象和pojo列表
不管是输出的pojo单个对象还是一个列表(list中包括pojo),在mapper.xml中resultType指定的类型是一样的。
在mapper.java指定的方法返回值类型不一样。
1.2. 1.输出单个pojo对象,方法返回值是单个对象类型
1 interface publique UserMapper {2 /**Interroger les informations utilisateur en fonction de l'ID*/3 public User findUserById(int id);4 }
1.2.2.输出pojo对象list,方法返回值是List
1 interface publique UserMapper {2 /**Requête floue des informations utilisateur basée sur le nom d'utilisateur*/3 public List
1 2 5 8 12
(3) Utilisez resultMap comme mappage de type de sortie de l'instruction
<.>1 4 < ;select id="findUserByIdResultMap" ParameterType="int " resultMap="userResultMap" >5 sélectionnez l'identifiant id_, le nom d'utilisateur username_ de t_user où id=#{id}6Résumé :
Ce qui précède présente les bases pour démarrer avec mybatis (4) - le contenu du mappage d'entrée et du mappage de sortie. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !