Hibernate5.2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24059599/article/details/52073832

在Hibernate5.0这个版本和4又不同了

这是4的获取Session的工厂:

//1. 解析我们在hibernate.cfg.xml中的配置//  

Configuration configuration = new Configuration().configure();  

//2. 创建服务注册类,进一步注册初始化我们配置文件中的属性//  

ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();  

//3. 创建我们的数据库访问会话工厂//  

SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);

但是在5中又做了改动:

//1. 配置类型安全的准服务注册类,这是当前应用的单例对象,不作修改,所以声明为final  

//在configure("cfg/hibernate.cfg.xml")方法中,如果不指定资源路径,默认在类路径下寻找名为hibernate.cfg.xml的文件  

final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure("cfg/hibernate.cfg.xml").build();  

//2. 根据服务注册类创建一个元数据资源集,同时构建元数据并生成应用一般唯一的的session工厂  

SessionFactory sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();

这次的改动我想是为了解决效率和资源的竞争问题,

后面的都没有大的变化,都是:

Session session = sessionFactouy.openSession(); 获得session

session.beginTransaction(); 开始一次事务

session.xxxxxx(); 事务的操作

sesssion.getTransaction().commit(); 提交事务

session.getTransaction().rollback(); 失败回滚

session.close();

猜你喜欢

转载自blog.csdn.net/qq_24059599/article/details/52073832
今日推荐