首页 > 其他 > 详细

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

时间:2020-06-24 00:59:23      阅读:118      评论:0      收藏:0      [点我收藏+]

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

首先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=‘钓鱼‘}

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

原文:https://www.cnblogs.com/chenguosong/p/13185370.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!