请看下如下的操作:
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction();//(2)
session.save(someObj);//将someObj插入到DB中
tx.commit();//(4)
你认为对象someObj会插入到DB中吗?
答案是对象并没有被保存到数据库中。
这是怎么回事,事务不是提交了吗,为什么数据没有被插入到DB中呢?相信对于惯于通过jdbc操作数据库,而且不太熟悉hibernate的开发人员而言,有可能会有这样的疑问。
简单解释一下:
(2)中的Transaction不是jdbc中常用的javax.transction.Transaction,所以(4)这一句并不代表完成了对数据库的操作。另外,需要了解下hibernate的session的缓存机制。
session对象中维护着一个持久化对象的map列表,someObj就保存在此列表中。对于hibernate的api来说,只有调用了session.close(),hibernate才会将当前session缓存中的持久化对象和数据库中的数据进行同步,该插入的插入,该更新的更新,等等。
结论:
使用hibernate时,千万别忘了关闭session。
分享到:
相关推荐
同时,别忘了在每次数据库操作后关闭Session,释放资源。 最后,事务管理是数据库操作的关键部分。在Hibernate中,通常在Transaction对象的生命周期内完成一组操作。如上述示例所示,开始事务、执行操作、提交事务...
在处理完数据库操作后,别忘了关闭Session和SessionFactory,以释放资源。 此外,Hibernate还支持HQL(Hibernate Query Language),这是一种面向对象的查询语言,可以用来执行复杂的查询。例如,获取所有用户名为...
最后,别忘了在Struts2的配置文件(struts.xml)中配置Action,使其能调用我们的Service层方法。通过以上步骤,我们就成功地在IDEA的SSH项目中集成了Hibernate。 总结一下,这个教程涵盖了以下知识点: 1. 创建SSH...
5. **事务处理**:执行SQL查询通常涉及数据库事务,别忘了在适当的地方进行事务管理。在Hibernate中,可以通过Session的beginTransaction和commitTransaction方法来控制事务的开始和结束。 通过上述步骤,我们就...
最后,别忘了关闭`Session`和`SessionFactory`: ```java session.close(); sessionFactory.close(); ``` 这就是一个基本的使用Maven配置Hibernate5的流程。通过这种方式,你可以轻松地在Java应用中管理和操作...
最后,别忘了在每次操作完成后关闭`Session`,以释放资源。在实际开发中,可能还需要实现事务管理、错误处理等高级功能,但这已经涵盖了Hibernate基本操作的流程。通过这种方式,你可以轻松地在MyEclipse中使用...
在Java企业级开发中,Spring和Hibernate是两个非常重要的框架,Spring主要负责依赖注入和管理,而Hibernate则专注于对象关系映射(ORM)和数据库操作。本教程将详细介绍如何将两者结合,通过全XML配置方式进行集成,...
操作完成后,别忘了关闭`Session`和`SessionFactory`,释放资源: ```java session.close(); sessionFactory.close(); ``` ### 8. 性能优化 HSQldb内存模式下的性能非常快,但需要注意的是,一旦应用关闭,内存中...
最后,别忘了关闭SessionFactory,避免资源泄露: ```java if (sessionFactory != null) { sessionFactory.close(); } ``` 总的来说,使用Hibernate连接数据库注册项目涉及到多个步骤,包括配置文件的设置、实体...
在完成操作后,别忘了关闭`Session`以释放资源。 为了查询数据,我们可以使用`Query`或`Criteria` API。假设我们要根据用户名查找用户,可以这样写: ```java Session session = sessionFactory.openSession(); ...
在Java开发中,Hibernate是不可或缺的一部分,特别是在处理复杂的数据交互时。这个"hibernate对应的jar包"很可能包含了Hibernate框架运行所需的库文件。 在Java应用程序中使用Hibernate,通常需要以下核心的jar包:...
6. 关闭资源:最后,别忘了关闭Session和SessionFactory以释放资源。 通过这种方式,你可以利用Hibernate的便利性和Mycat的分布式能力,构建高性能的Java应用。在实际项目中,还需要考虑错误处理、性能优化、数据...
别忘了关闭`Session`和`SessionFactory`以避免资源泄漏。 在MyEclipse中,你还可以利用其强大的代码生成工具自动生成实体类、映射文件以及DAO(数据访问对象)层的代码,这将大大提高开发效率。 总结来说,使用...
在Java世界中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。本压缩包包含了进行普通Hibernate开发所需的最基本jar包,确保你能顺利...
8. **关闭资源**: 最后,别忘了在操作完成后关闭Session和SessionFactory,以释放资源。 以上就是Hibernate的基本流程,对于初学者来说,理解并熟练掌握这些步骤是十分重要的。通过实践和理解,可以更有效地利用...
5. **关闭资源**: 执行完操作后,别忘了关闭Session和SessionFactory,以避免资源泄露。 与JDBC调用存储过程相比,Hibernate提供了一种更加面向对象的、更简洁的接口。在JDBC中,你需要手动编写SQL字符串,设置参数...
首先,Hibernate是Java领域中最流行的ORM(对象关系映射)框架之一,它允许开发者使用面向对象的方式操作数据库,减少了直接编写SQL语句的工作量。而SQL Server 2000是一款由Microsoft开发的关系型数据库管理系统,...
4. **关闭Session**:最后别忘了关闭Session,以释放资源。 ```java session.close(); ``` ### 使用HQL进行分页 1. **编写HQL查询语句**:HQL支持类似SQL的查询语法,但面向对象。 ```java String hql = ...
在Hibernate中,我们可以使用Session的CRUD方法(create, read, update, delete)来执行数据库操作,或者使用Criteria API和HQL(Hibernate Query Language)进行更复杂的查询。 最后,别忘了创建DAO(Data Access ...
最后,别忘了关闭`Session`和`SessionFactory`以释放资源。在实际项目中,还可以使用Spring的`HibernateTemplate`或`JPA`进行更高级的事务管理和数据操作。 通过这个“Hibernate入门”教程,你将能了解并实现使用...