MyBatis輸入映射parameterType

案例:html

1.User.java以及SqlMapConfig.xml參考MyBatis實現增刪改查java

2.UserCustom.java繼承User.javasql

1 package com.test.entity;
2 /**
3  * 
4  * @author Mr
5  * 屬於User的擴展類
6  */
7 public class UserCustom extends User {
8     //能夠添加一些屬性
9 }

3.UserQueryVo.java類數據庫

 1 package com.test.entity;
 2 /**
 3  * 這個是包裝類 ,後面跟控制器有關係
 4  * @author Mr
 5  *
 6  */
 7 public class UserQueryVo {
 8     //用戶的查詢條件
 9     private User user;
10     //附加的查詢條件
11     private UserCustom userCustom;
12 
13     public User getUser() {
14         return user;
15     }
16 
17     public void setUser(User user) {
18         this.user = user;
19     }
20 
21     public UserCustom getUserCustom() {
22         return userCustom;
23     }
24 
25     public void setUserCustom(UserCustom userCustom) {
26         this.userCustom = userCustom;
27     }
28     
29 }

4.UserMapper.javaapache

 1 package com.test.dao;
 2 
 3 import java.util.List;
 4 
 5 import com.test.entity.User;
 6 import com.test.entity.UserCustom;
 7 import com.test.entity.UserQueryVo;
 8 /**
 9  * 
10  * @author Mr
11  * Mapper接口代理模式開發命名必定是:實體類名+Mapper
12  * 
13  * 使用mapper開發步驟:
14  *     1.編寫接口和mapper.xml要遵循4個指標
15  *     2.SqlMapConfig.xml中加載UserMapper.xml
16  */
17 public interface UserMapper {
18     //根據用戶id查詢用戶
19     public User findUserById(int id);
20     //添加用戶
21     public void addUser(User user);
22     //這個方法對應的是包裝類型的statement
23     public List<UserCustom> findUserList(UserQueryVo userQueryVo);
24 }

5.UserMapper.xmlsession

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <!-- namespace命名空間是UserMapper接口的全類名-->
 6 <mapper namespace="com.test.dao.UserMapper"> 
 7  <!-- 查詢  注意了 type後面是包裝類-->
 8  <select id="findUserList" parameterType="com.test.entity.UserQueryVo" resultType="com.test.entity.UserCustom">
 9      select * from userss WHERE sex=#{userCustom.sex} AND username LIKE '%${userCustom.username}%'
10  </select>
11  
12  
13  </mapper>

6.測試類mybatis

 1 package com.test.demo;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.util.List;
 6 
 7 import org.apache.ibatis.io.Resources;
 8 import org.apache.ibatis.session.SqlSession;
 9 import org.apache.ibatis.session.SqlSessionFactory;
10 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
11 
12 import com.test.dao.UserMapper;
13 import com.test.entity.UserCustom;
14 import com.test.entity.UserQueryVo;
15 
16 /**
17  * 測試包裝類型的pojo
18  * @author Mr
19  *
20  */
21 public class Test4 {
22 
23     public static void main(String[] args) {
24         try {
25             //mybatis核心文件
26             String resource = "SqlMapConfig.xml";
27             //讀取配置文件
28             InputStream config = Resources.getResourceAsStream(resource);
29             //獲取工廠
30             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(config);
31             //獲取數據庫操做對象
32             SqlSession sqlSession = sqlSessionFactory.openSession();
33             //獲取實現類對象
34             UserMapper um = sqlSession.getMapper(UserMapper.class);
35             
36             UserQueryVo userQueryVo = new UserQueryVo();
37             //參數是userCustom的
38             UserCustom userCustom = new UserCustom();
39             userCustom.setSex("1");
40             userCustom.setUsername("張");
41             //他們倆存在關係
42             userQueryVo.setUserCustom(userCustom);
43             
44             List<UserCustom> list = um.findUserList(userQueryVo);
45             for (UserCustom uu : list) {
46                 System.out.println(uu);
47             }
48             
49             
50         } catch (IOException e) {
51             // TODO Auto-generated catch block
52             e.printStackTrace();
53         }
54         
55 
56     }
57 
58 }
相關文章
相關標籤/搜索