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);
        }
  • 相关阅读:
    Eclipse远程调试,服务器为linux的配置
    关于javascript代码执行时间的计算
    Java编程中容易疏忽的知识点
    为什么要开发自己的框架、平台或插件
    算法在计算中的作用
    程序员的自豪感
    iOS,Objective-C Runtime
    iOS,本地化(国际化)字符
    iOS,应用崩溃日志分析
    iOS,信息加解密
  • 原文地址:https://www.cnblogs.com/WarBlog/p/14931420.html
Copyright © 2011-2022 走看看