Hibernate的检索(简单例子)
前言:临近年关,显得有点匆忙。今天学习的东西不是很多,下面就简单分享下Hibernate的HQL检索和QBC(Query-By-Criteria)检索的简单步骤。
展示HQL检索:
- // 创建一个Query对象
- String hql ="from edu.hibernatetest.domain.po.User u whereu.loginname=:loginname";
- Query query =session.createQuery(hql);
- // 动态绑定参数
- query.setString("loginname","lis");
- // 执行查询结果,返回查询结果
- List<User>returnList = query.list();
- for(Useruser:returnList){
- System.out.println("登录名:"+user.getLoginname()+" 密码:"+user.getPassword());
- }
展示QBC检索:
说下简单需求:向程序中添加查询模块。按“人员姓名”、“人员登录名”、“人员密码”三个字段来查询。有“人员姓名”查询,就拼hql语句,否则就按无此条件查询。
- public List<User>queryUsersByQuery(QueryForm query) {
- // TODOAuto-generated method stub
- // 创建一个Criteria对象。
- Criteria criteria =this.getSession().createCriteria(User.class);
- // 设定查询条件,然后把查询条件加入到Criteria中
- CriterioncriterionLoginName=null;
- CriterioncriterionUserName=null;
- CriterioncriterionPassword=null;
- if(query.getQueryLoginname() != null && query.getQueryLoginname().length()> 0){
- criterionLoginName= Expression.like("loginname","%"+query.getQueryLoginname()+"%");
- }
- if(query.getQueryUsername() != null && query.getQueryUsername().length()> 0){
- criterionUserName= Expression.like("username","%"+query.getQueryUsername()+"%");
- }
- if(query.getQueryPassword() != null && query.getQueryPassword().length()> 0){
- criterionPassword= Expression.like("password","%"+query.getQueryPassword()+"%");
- }
- if(criterionLoginName != null) {
- criteria.add(criterionLoginName);
- }
- if(criterionUserName != null) {
- criteria.add(criterionUserName);
- }
- if(criterionPassword != null) {
- criteria.add(criterionPassword);
- }
- returncriteria.list();
- }
如有好的建议,可留言或发至笔者邮箱:fzb_xxzy@163.com