hql

作者: 蘋果_283e | 来源:发表于2017-04-19 19:17 被阅读0次

    Hibernate查询语言:接近SQL【结构化查询语言】的语法.

    Hibernate3的HQL是不支持insert;(update 和 delete 一般不用)

    HQL中没有表和字段的概念,只有类和属性的概念。

    HQL语言操作的是持久化类,所以区分大小写,也就是说from后面跟的是实体类(JavaBean),而不是数据库中的表名

    修改

    //用hql开发修改、删除不能开发添加

    public void updatePart(Part part){

    Transaction beginTransaction = session.beginTransaction();

    String sql="update Part set name=?,pwd=?,role=? where id=?";

    Query createQuery = session.createQuery(sql);

    createQuery.setString(0, part.getName());

    createQuery.setString(1, part.getPwd());

    createQuery.setString(2, part.getRole());

    createQuery.setInteger(3, part.getId());

    createQuery.executeUpdate();//执行修改或删除

    beginTransaction.commit();//提交事务

    session.close();

    }

    删除

    public boolean delAllUser(String id) {// 批量删除id

    Transaction beginTransaction = session.beginTransaction();

    String sql="delete from Part where id in("+id+")";

    Query createQuery = session.createQuery(sql);

    createQuery.executeUpdate();

    beginTransaction.commit();//提交事务

    session.close();

    return true;

    }

    查询

    public List<Dept>listPage(int currentPage, int pageSize) {

    //selecct* from dept limit ?,?

    //hql中不支持limit分页,只能使用如下设置

    Query createQuery = session.createQuery("from Dept");//from 后接类名

    /*hibernate分页错误写法

    * createQuery.setInteger(0,(currentPage-1)*pageSize);

    createQuery.setInteger(1,pageSize);*/

    //相当于limit的第1个问号

    createQuery.setFirstResult((currentPage-1)*pageSize);

    //相当于limit的第2个问号

    createQuery.setMaxResults(pageSize);

    List<Dept>list = createQuery.list();

    return list;

    }

    相关文章

      网友评论

          本文标题:hql

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