JSP开发中Hibernate框架的常用检索方式总结
在Java Web开发中,使用Hibernate框架来操作数据库是非常常见的。有时候我们需要进行数据检索,本篇文章将总结Hibernate中常用的检索方式。
HQL
Hibernate Query Language,简称HQL,是Hibernate提供的一种面向对象的检索语言。
基本查询
from EntityName
其中,EntityName
是实体类的名称。此查询可以查询出该实体类对应的表中的所有数据。
条件查询
from EntityName where fieldName = value
其中,fieldName
是实体类中的属性名称,value
是要查询的值。
聚合函数
select count(*) from EntityName
此查询可以返回该实体类对应的表中数据的总数。
Criteria
Criteria是Hibernate提供的一种类型安全的查询方式,它不需要编写HQL字符串直接在Java代码中进行编写,可以避免拼接HQL字符串的问题。
基本查询
Criteria criteria = session.createCriteria(EntityName.class);
List<EntityName> list = criteria.list();
此查询查询出该实体类对应的表中的所有数据。
条件查询
Criteria criteria = session.createCriteria(EntityName.class);
criteria.add(Restrictions.eq("fieldName", value));
List<EntityName> list = criteria.list();
其中,fieldName
是实体类中的属性名称,value
是要查询的值。
分页查询
Criteria criteria = session.createCriteria(EntityName.class);
criteria.setFirstResult((pageNo - 1) * pageSize);
criteria.setMaxResults(pageSize);
List<EntityName> list = criteria.list();
其中,pageNo
是要查询的页码,pageSize
是每页要显示的数据量。
示例说明
以下是一张Student
表的结构:
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
id | int(11) | NO | PRI | NULL | auto_increment |
name | varchar(255) | NO | NULL | ||
age | int(11) | NO | NULL | ||
score | float | NO | NULL |
以下是对Student
表进行检索的几个示例:
使用HQL查询所有学生信息
from Student
使用Criteria查询所有学生信息
Criteria criteria = session.createCriteria(Student.class);
List<Student> list = criteria.list();
使用HQL查询姓名为Tom
,年龄为18
的学生
from Student where name = 'Tom' and age = 18
使用Criteria查询姓名为Tom
,年龄为18
的学生
Criteria criteria = session.createCriteria(Student.class);
criteria.add(Restrictions.eq("name", "Tom"));
criteria.add(Restrictions.eq("age", 18));
List<Student> list = criteria.list();
使用Criteria进行分页查询
Criteria criteria = session.createCriteria(Student.class);
criteria.setFirstResult((pageNo - 1) * pageSize);
criteria.setMaxResults(pageSize);
List<Student> list = criteria.list();
其中,pageNo
是要查询的页码,pageSize
是每页要显示的数据量。
以上就是Hibernate中常用的检索方式,希望可以帮助到大家。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JSP开发中hibernate框架的常用检索方式总结 - Python技术站