• 实体类的包装对象作为查询条件


    实体类的包装对象作为查询条件

    首先User实体类对应数据库表中的字段

    package chen.domain;
    
    import java.io.Serializable;
    import java.util.Date;
    
    public class User implements Serializable {
        private Integer id;
        private String username;
        private Date birthday;
        private String sex;
        private String address;
      //以下省略get set方法
    }
    

    创建QueryVo实体类内容如下:

    package chen.domain;
    //User实体类在chen.domanin包下
    public class QueryVo {
        private User user;
    
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    }
    
    

    IUserDao.xml

    此处传递的参数parameterType是QueryVo实体类,但是查询语句需要的是User对象里面的username,我们可以用Query里面的user对象直接用到username,此处用到的是OGNL语法。

        <select id="findUserByVo" parameterType="chen.domain.QueryVo" resultType="chen.domain.User">
            select * from user where username like #{user.username}
        </select>
    

    在接口里写好方法

        /**
         *根据QUERYVO中的条件查询用户
         * @return
         */
        List<User> findUserByVo(QueryVo vo);
    

    测试类里面看一下结果

        /**
         * 测试使用QueryVo作为查询条件
         */
        @Test
        public void testfindUserByVo(){
            QueryVo Vo=new QueryVo();
            User user=new User();
            Vo.setUser(user);
            user.setUsername("李%");
            //执行查找方法
            List<User> users= userDao.findUserByVo(Vo);
            for (User u:users) {
                System.out.println(u);
            }
        }
    

    运行结果

    User{id=6, username='李智', birthday=Mon May 25 21:41:51 CST 2020, sex='男', address='宝鸡'}
    User{id=9, username='李四', birthday=Tue May 26 21:26:01 CST 2020, sex='男', address='钓鱼'}
    User{id=10, username='李四', birthday=Mon Jun 22 22:12:58 CST 2020, sex='男', address='钓鱼'}
    
  • 相关阅读:
    sql分页查询
    vi编辑器使用
    Linux命令:
    ubuntu中mysql忘记密码如何修改
    关于MySQL中自增的理解和设置
    MySQL中是索引
    MySQL中的分页操作结合python
    MySQL的分组和排序
    MySQL多表连接操作
    .NET Core App部署Linux
  • 原文地址:https://www.cnblogs.com/chenguosong/p/13185370.html
Copyright © 2020-2023  润新知