美文网首页
hibernate条件查询加分页封装方法

hibernate条件查询加分页封装方法

作者: Harry小哥哥 | 来源:发表于2020-05-08 16:51 被阅读0次

    @Override
    public List<T> findPage(int page, int length, Map<String, Object> pram) {
    List<T> result = null;
    try
    {
              //初始化hql,this.entityClazz.getSimpleName()是泛型的真实类名,在构造函数中获取
    String hql = "from " + this.entityClazz.getSimpleName() + " where 1=1 and "; //注意空格
    Session session = this.sesionFactory.openSession(); //获取连接
    if(!pram.isEmpty()) //判断有无条件
    {
    Iterator<String> it = pram.keySet().iterator(); //迭代map
    while(it.hasNext())
    {
    String key = it.next(); //获取条件map中的key,即条件字段
    hql = hql + key + " like " + "'%" + pram.get(key) + "%'" + " and "; //将字段和模糊值拼接成hql
    }
    }
    hql += " 2=2"; //在hql末尾加上 2=2,方便hql再次拼接
    System.out.println(hql);
    Query query = session.createQuery(hql);
    query.setFirstResult((page - 1) * length); //设置分页页码
    query.setMaxResults(length); //设置每页数据长度
    result = query.list(); //返回结果集
    } catch (RuntimeException re)
    {
    throw re;
    }
    return result;
    }

    相关文章

      网友评论

          本文标题:hibernate条件查询加分页封装方法

          本文链接:https://www.haomeiwen.com/subject/gzzfnhtx.html