hql

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 ListlistPage(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);

Listlist = createQuery.list();

return list;

}

你可能感兴趣的:(hql)