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 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;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容