/*查询实体的部分属性并组成实体对象*/
public void query_for_part_object(){
Session session = null;
ScrollableResults scrollableResults = null;
try {
session = HibernateSessionFactory.getSession();
Query query = session.createQuery("SELECT u.id,u.password,u.email FROM User u");
List<User> list = new ArrayList<User>();
scrollableResults = query.scroll();
User user = null;
while(scrollableResults.next()){
user = new User();
user.setId(scrollableResults.getInteger(0));
user.setPassword(scrollableResults.getString(1));
user.setEmail(scrollableResults.getString(2));
list.add(user);
}
for(User u : list){
System.out.println(u.getId());
System.out.println(u.getPassword());
System.out.println(u.getEmail());
}
} catch (HibernateException e) {
e.printStackTrace();
} finally{
scrollableResults.close();
HibernateSessionFactory.closeSession(session);
}
}
ScrollableResults的一个小例子
hibernate各种条件查询汇总
hibernate处理批量更新和批量删除
Hibernate高效查询,只查询部分/指定字段
分享到:
相关推荐
4. **构建 Criteria 查询**:使用 Session 的 createCriteria() 方法创建 Criteria 对象,然后通过 add() 添加条件,通过 createCriteria() 实现多表连接。 5. **设置分页**:调用 setFirstResult() 和 ...
Hibernate分页查询基于SQL的LIMIT和OFFSET子句,通过Session的createQuery或createSQLQuery方法创建查询,并设置FirstResult和MaxResults属性来实现分页。FirstResult表示从结果集的第几个元素开始获取,MaxResults...
- **查询语言(JPQL)**: 类似于SQL,但面向对象,用于检索和操作实体。例如,`SELECT e FROM Employee e WHERE e.name = 'John'`。 **4. 联合主键(Composite Key)** 在某些情况下,表的主键由多个列组成。JPA...
4. 加载和检索:使用Session的get()或load()方法加载对象,query()方法执行查询。 五、查询语言 1. HQL:Hibernate的查询语言,类似于SQL,但面向对象,支持复杂的查询表达式和函数。 2. Criteria API:提供更面向...
3. **更新(Update)**:修改对象属性后调用`update()`方法。 ```java user.setUsername("新用户名"); session.update(user); ``` 4. **删除>Delete)**:调用`delete()`方法移除对象。 ```java session....
更新(Update)则是通过修改对象属性后,调用Hibernate的update()或merge()方法。查询(Read)可以是简单的单个对象查找,也可以是复杂的分页查询,都是通过Struts和Hibernate的配合完成。 **整合Struts与Hibernate...
理解这些状态对于正确使用 Hibernate 至关重要,例如,持久化对象通过 Session 的 save() 或 persist() 方法成为持久态,更新通过 update() 方法,删除则使用 delete() 方法。 **五、缓存机制** Hibernate 内置了...
3. 会话操作:通过SessionFactory创建Session,使用Session的save()、update()、delete()方法进行CRUD操作,用Query或Criteria API进行查询。 4. HQL查询:使用`Session.createQuery()`创建HQL查询,通过结果集接口...
- 在 Action 类中,根据用户的请求获取查询条件,并结合 `PageController` 对象调用 DAO 或 Service 层的方法来执行分页查询。 - 将查询结果和 `PageController` 对象放入 Session 或 Request 中,以便在 JSP 页面...
4. 流式查询:使用ScrollableResults,可按需逐条处理结果,适合大数据量查询。 五、Hibernate缓存 为了提高性能,Hibernate引入了缓存机制。一级缓存(Session级别的缓存)是默认开启的,自动管理对象的状态。二级...
2. **避免使用联合主键**:联合主键虽然有助于确保唯一性,但在实际操作中会增加维护成本,并可能导致查询性能下降。 3. **ID生成机制的选择**:不同数据库提供的ID生成策略各不相同,合理选择可以提升性能。例如,...
2. **避免使用联合主键**:联合主键虽然有助于确保唯一性,但在实际使用过程中会增加维护成本,并可能导致查询性能下降。 3. **ID生成机制的选择**:不同数据库提供的ID生成策略各异,例如序列、触发器、GUID等,...
在分页中,Hibernate的Criteria、HQL或者Query接口可以用来编写查询语句,结合Page或ScrollableResults对象实现分页查询。例如,通过设置FirstResult和MaxResults属性来指定查询的起始位置和记录数量,从而实现分页...
在代码中,我们需要在适当的时候调用`flush()`和`clear()`方法,强制将缓存中的对象写入数据库并清空缓存,从而释放内存。例如: ```java Session session = sessionFactory.openSession(); Transaction tx = ...
2. **使用Hibernate的 ScrollableResults**:这种分页方式提供了游标遍历数据的能力,可以按需加载数据,降低了内存消耗,适用于大数据量的分页。 3. **基于Count查询的逻辑分页**:先查询总记录数,然后根据用户...
支持实体、集合和属性级别的延迟加载。 4. **分布式缓存**:在集群环境中使用,可以提高系统的扩展性和可用性。常用的分布式缓存解决方案包括 OSCache 和 JBoss Cache。 #### 六、方法选用 1. **List/Set/Bag/...
- 使用Hibernate的Criteria API配合 ScrollableResults 实现分页。 - 利用HQL(Hibernate Query Language)进行分页查询。 - 自定义SQL语句,通过设置LIMIT或OFFSET关键字进行分页(Oracle支持ROWNUM伪列进行分页...
2. **创建DAO**:实现分页查询的方法,使用Hibernate的Session或SessionFactory进行数据库操作。 3. **配置Service**:在Spring中声明Service,注入DAO,实现业务逻辑,包括计算总页数、获取当前页数据等。 4. **...
3. **DAO层**:使用Hibernate与数据库交互,通常会有一个`PageDAO.java`,其中包含使用Hibernate的Session来执行分页查询的代码,比如使用`createQuery()`或`createCriteria()`方法设置分页参数并执行查询。...
Hibernate是一个对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库记录,避免了手动编写SQL语句。在"增删改查"中,Hibernate提供了Session接口,通过它可以方便地对数据库进行插入、更新、删除和查询...