zoukankan      html  css  js  c++  java
  • mybatis 传递pojo的包装对象

    需求:完成用户信息的综合查询,需要传入查询条件很复杂(可能包括用户信息、其它信息,比如商品、订单的)

    一、自定义包装类型pojo

    包装类型的pojo中将复杂的查询条件包装进去

    比如说要包装用户的查询信息

    public class UserQueryVo {
        
        //所需要的查询条件
        private User user;
    }

    这样包装的话,如果User实体类型不能满足查询条件的话,就需要修改User,但是这个User有可能是生成工具生成的,不能随便修改,所以在包装类时,不要包装User类,可以包装User的扩展类

    创建一个User的扩展类

    public class UserExtend extends User {
    
    }

    然后再包装

    public class UserQueryVo {
        
        //查询用户条件
        private UserExtend userExtend;
        //查询订单条件
        private OrderExtend orderExtend;
    
        public UserExtend getUserExtend() {
            return userExtend;
        }
    
        public void setUserExtend(UserExtend userExtend) {
            this.userExtend = userExtend;
        }
    
        public OrderExtend getOrderExtend() {
            return orderExtend;
        }
    
        public void setOrderExtend(OrderExtend orderExtend) {
            this.orderExtend = orderExtend;
        }
    }
    View Code

    配置mapper.xml

        <select id="findUserlist" parameterType="com.xxx.mybatis.po.UserQueryVo" 
        resultType="com.xxx.mybatis.po.UserExtend">
            select * from t_user where sex = #{userExtend.sex} and userName LIKE CONCAT('%',#{userExtend.username},'%' )
        </select>

    mapper.java

    public List<UserExtend> findUserlist(UserQueryVo vo);

    测试代码

        @Test
        void testFindUserList() {
        
        UserMapper userMapper = sqlSessionFactory.openSession().getMapper(UserMapper.class);
    
        UserQueryVo queryVo=new UserQueryVo();
    
        UserExtend userExtend=new UserExtend();
        userExtend.setSex("0");
        userExtend.setUsername("小");
    
        queryVo.setUserExtend(userExtend);
    
        List<UserExtend> list = userMapper.findUserlist(queryVo);
        System.out.println(list);
        }
  • 相关阅读:
    LeetCode 230. Kth Smallest Element in a BST
    LeetCode 114. Flatten Binary Tree to Linked List
    LeetCode 222. Count Complete Tree Nodes
    LeetCode 129. Sum Root to Leaf Numbers
    LeetCode 113. Path Sum II
    LeetCode 257. Binary Tree Paths
    Java Convert String & Int
    Java Annotations
    LeetCode 236. Lowest Common Ancestor of a Binary Tree
    LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/WarBlog/p/14931420.html
Copyright © 2011-2022 走看看