发现现在自己的记性很差了,写了几遍的代码,依然记不住,老是想不起来,现在记下来,就当个知识库吧,用的时候到这里来取,呵呵,图个方便。
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
private static SessionFactory factory;
static {
try {
Configuration cfg = new Configuration().configure();
factory = cfg.buildSessionFactory();
}catch(Exception e) {
e.printStackTrace();
}
}
public static SessionFactory getSessionFactory() {
return factory;
}
public static Session getSession() {
return factory.openSession();
}
public static void closeSession(Session session) {
if (session != null) {
if (session.isOpen()) {
session.close();
}
}
}
}
分享到:
相关推荐
在实际开发中,选择哪种Session释放模式取决于应用场景和性能需求。对于简单的CRUD操作,Transaction边界Session通常足够;而对于复杂业务或需要跨请求操作的场景,可能需要采用OSIV或Conversation边界Session。无论...
Hibernate的`Session`接口提供了`createSQLQuery()`方法,允许我们直接编写SQL语句。例如: ```java Session session = sessionFactory.openSession(); SQLQuery query = session.createSQLQuery("SELECT * FROM...
SSHnote session函数的对象状态转换是Hibernate框架中一个关键的概念,涉及到如何管理数据库中的持久化对象。在Hibernate中,对象有三种基本状态:瞬时(Transient)、持久化(Persistent)和脱管(Detached)。理解...
- **扩展周期的 Session 和自动版本化**:Hibernate 使用扩展周期的 Session 来提供自动版本检查,可以在同步时检测并发修改并抛出异常。这种方式更为高效,减轻了开发者的负担。 #### 七、总结 Hibernate 的事务...
* 使用 session.refresh(object),当 object 不是数据库中已有数据的对象的时候,不能使用 session.refresh(object) 因为该方法是从 Hibernate 的 session 中去重新取 object,如果 session 中没有这个对象,则会...
DAO通常会使用Hibernate的Session进行CRUD操作,并利用缓存提升性能。 6. **Controller层**:虽然Struts没有被包含在这个项目中,但如果是基于Spring MVC的Web应用,那么Controller类会处理HTTP请求,调用Service层...
Hibernate的核心组件包括Configuration对象和Session对象。Configuration对象负责管理与数据库连接相关的配置信息,如数据库URL、用户名、密码、JDBC驱动类以及Dialect,这些信息通常存储在hibernate.cfg.xml或...
总的来说,Hibernate第一天的学习涵盖了基本的环境配置、对象关系映射、主键生成策略、`SessionFactory`和`Session`的使用,以及事务管理和缓存机制。理解并掌握这些基础概念,是进一步深入学习Hibernate和进行实际...
这些级别的选择取决于对数据一致性和性能的要求。 #### 六、总结 通过本文的学习,我们了解到Hibernate中事务处理的基本原理及其实现方法。正确地管理事务不仅可以提升应用的健壮性,还能有效避免数据不一致等问题...
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static final SessionFactory sessionFactory; static {...
4. **添加Hibernate库**: 在项目中引入Hibernate的核心库,包括`hibernate-core`,以及其他可能需要的模块,如`hibernate-entitymanager`,具体取决于你的项目需求。 二、基本操作封装 1. **实体类定义**: 创建...
Hibernate通过Session接口的`update()`方法实现对象的更新。当你从数据库加载一个对象,修改其属性,然后调用`update()`方法,Hibernate会根据对象的状态自动执行相应的SQL UPDATE语句。然而,如果对象不在Session...
Hibernate通过Session接口处理数据库交互,Session相当于JDBC的Connection。事务管理则通过Transaction接口完成,提供了一套API来开始、提交、回滚事务。 6. **查询方式:** Hibernate支持HQL(Hibernate Query ...
总结,Hibernate提供多种方式查询数据表中的字段,包括HQL、Criteria API和DetachedCriteria,选择合适的方法取决于具体需求。正确理解和使用Hibernate,能够大大提高Java开发中的数据库操作效率。
如果你使用的是最新版本的Hibernate,可能需要更多的jar包,具体取决于版本需求。 2. **Hibernate的作用**: Hibernate作为ORM框架,它的主要功能是建立Java对象与关系数据库之间的映射关系。它提供了对象与数据库...
结合Spring和Hibernate,你可以在Spring的Service层使用Hibernate的Session来调用存储过程,或者在Repository层通过JdbcTemplate或NamedParameterJdbcTemplate进行调用。具体选择哪种方式取决于你的项目结构和需求。...
10. 如果在Hibernate中对同一个Customer对象的name属性进行了两次修改,最终的修改结果取决于事务的提交顺序。如果事务正常提交,最后一次修改的值将会保存在数据库中。 总的来说,Hibernate通过提供面向对象的接口...
6. **事务管理(Transaction)**:Hibernate支持编程式和声明式事务管理,示例代码中通常会有`Session.beginTransaction()`和`transaction.commit()`来确保数据操作的原子性。 7. **查询语言(HQL)**:Hibernate ...
2. **`<session-factory>`**: 定义了Session工厂,这是Hibernate的主要工作单元,用于创建Session实例。 3. **`<property>`**: 用于设置各种配置属性,如数据库连接信息(driver_class, url, username, password),...
- **资源消耗**:Hibernate需要额外的内存来存储Session对象,对于大规模部署的应用程序来说,这可能会成为资源消耗的一个因素。 总结而言,Hibernate和JDBC都是Java应用与数据库交互的重要工具,各有优劣。选择...