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);
        }
  • 相关阅读:
    运动检测技术在数字化监控中的实现和应用(作者:何峻峰)
    EF BB BF的问题
    理解HTTP幂等性
    FusionCharts 分类以及各个属性 参数列表
    SQL语言包含的四个部分
    Inno Setup (安装程序制作)
    PowerDesigner 参照完整性约束(级联删除)
    java默认语法、EL、JSTL表达式,JSTL和struts Tag标签的使用总结
    修改PowerDesigner中create index的bug
    神奇的java Object ( Object和数组关系) Object数据互转
  • 原文地址:https://www.cnblogs.com/WarBlog/p/14931420.html
Copyright © 2011-2022 走看看