集成HibernateDao的简单实用

当继承HibernateDao的时候,我们可以直接这样写

Session session=this.getSessionFactory().openSession();
try{
    for(DemoUser user:users){
        EntityState state=Entityutils.getState(user);
        if(state.equal(EntityState.NEW)){
        session.save(user);
        }else if(state.equal(EntityState.MODIFIED)){
            session.update(user);
        }else if(state.equals(EntityState.DELETED)){
            session.delete(user);
        }

    }finally{
        session.flush();
        session.close();
    }
}

还有一种不经常使用的方法doInHiberanteSession

public void saveDemoUser2(final Colllection<DemoUser> Users){
    this.doInHiberateSession(new ISessionCallBack<object>(){
    public Object doInSession(Session session){
        for(DemoUser user:users){
        EntityState state=EntityUtiles.getState(user){
            if(state.equals(EnetityState.NEW)){
                session.save(user);
            }else if(state.equals(Entity.MODIFIED)){
                session.update(user);
            }else if(state.equals(Entity.DELETED)){
                session.delete(user);
            }
        }
        return null;
        }
    }

    })
}

简单的查询所有的方法

    @DataProvider
    public Collection<DemoUser> query1() {
        return this.query("from " + DemoUser.class.getName());
    }

模糊查询的方法,

         Map<String ,Object> map=new HashMap<String,Object>();
         String sql="from " + DemoUser.class.getName()+" du"
         if(username!=null &&!"".equals.(username)){
         map.put("username","%"+username+"%");
         sql+="where du.username like :username" 
         }
         return this.query(sql,map);

带有DetachedCriteria条件的查询

@DataPrivider
public Collection<DemoUser> query4(String username){
    DetachedCriteria detachedCriteria=DetachedCriteria.forClass(Demo.class);
    if(username!=null&&!"".equals(username)){
        detachedCritreia.add(Restrictions.eq("username",usename));
    }
    return (Collection<DemoUser>)this.query(detachedCriteria);
}

无添加的查询分页

@DataProvider
public void query5(Page<Demouser> page) throws Exception{
    this.paginQuery(page,"from"+DemoUser.class.getName(),"select count(*) from "+DemoUser.class.getName());
}

带map参数的条件分页查询

@Dataprovider
public void query6(Page<Demouser> page,String username) throws Exception{
    Map <String,Objct> map=new HashMap<String,Object>();
    String sql="from"+DomeUser.class.getName()+" du ";
    String sqlconut="select count(*) from "+DemoUser.class.getName()+" du"; 
    if(username!=null&&!"".equals(username)){
        map.put("username",username);
        sql+="where du.username=:username";
        sqlcount+="where du.username=:uername";
    }
    this.pagingQuery(page,sql,sqlcount,map);
}

带detachedCriteria参数的条件分页查询(相对来说比map简单)

@DataProvider 
public void query7(Page<DemoUser> page,String username) throws Exception{
    DetachedCriteria detachedCriteria=DetachedCriteria.forClass(DemoUser.class);
    if(username!=null&&!"".equals(username)){
        detachedCriteria.add(Restrictions.eq("username",username));
    }
    this.pagingQuery(page,detachedCriteria);
}

结合DataGrid的过滤工具栏实现分页查询

@DataPrivider
public void query8(Page<DemoUser> page,Criteria criteria) throws Exception{
    detachedCriteria detachedCriteria=this.buildDetachedCriteria(criteria,DemoUser.class);
    this.pagingQuery(page,detachedCriteria);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值