实例演示如何在spring4.2.2中集成hibernate5.0.2并创建sessionFactory
本文地址:http://blog.csdn.net/sushengmiyan/article/details/49388209
文章作者:蘇生米沿
本文目的:使用spring4.2.2集成hibernate5.0.2并創建sessionFactory實例。
開發環境:eclipse(jee_mars) JDK1.8 MYSQL5.6?
spring下載地址:?https://repo.spring.io/list/release/org/springframework/spring/4.2.2.RELEASE/
一。XML配置方式
環境搭建:新建一個java工程xmlBasedspringhelloword,引入以下jar包:
1.引入hibernate需要的jar包:antlr-2.7.7.jar、dom4j-1.6.1.jar、geronimo-jta_1.1_spec-1.1.1.jar、hibernate-core-5.0.2.Final.jar、hibernate-jpa-2.1-api-1.0.0.Final.jar、jandex-1.2.2.Final.jar、javassist-3.18.1-GA.jar、jboss-logging-3.3.0.Final.jar
2.新建hibernate的配置文件hibernate.cfg.xml
配置文件內容如下:
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration><session-factory><!-- =============== 數據庫連接設置 =================== --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://localhost:3306/basichibernatepractice?characterEncoding=UTF8</property><property name="connection.username">root</property><property name="connection.password">123123</property><!-- =============== 配置使用c3p0數據庫連接池 =================== --> <property name="connection.pool_size">1</property><property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property><property name="c3p0.min_size">5</property><property name="c3p0.max_size">20</property><property name="c3p0.timeout">120</property><property name="c3p0.idle_test_period">3000</property><!-- =============== 數據庫方言設置 =================== --> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property><!-- =============== 二級緩存設置 =================== --> <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property><!-- =============== 控制臺打印sql語句設置設置 =================== --><property name="show_sql">true</property><!-- =============== 數據庫表結構更新設置 =================== --><property name="hbm2ddl.auto">update</property><!-- =============== 實體關系列表 =================== --></session-factory></hibernate-configuration>
4.新建spring的容器?ApplicationContext.xml
里面內容如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 配置hibernate5的SessionFactory --><bean name = "localSessionFactoryBean" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"><property name="configLocation" value="classpath:hibernate.cfg.xml"></property></bean></beans>5.導入的jar包如下所示。
6.新建測試類Spring4WithHibernate5HelloTest
實現如下:
package com.sushengmiyan.hellospring.hellohibernate5;import org.hibernate.SessionFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class Spring4WithHibernate5HelloTest {public static void main(String[] args) {@SuppressWarnings("resource")ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");SessionFactory sf = context.getBean("localSessionFactoryBean", SessionFactory.class);System.out.println(sf);} }運行測試,成功輸出sessionFactory.
實現講解:
1。正常方式配置hibernate
2。創建spring的容器,容器中添加對hibernate的引用。
3.容器中獲取,注意容器中添加的是org.springframework.orm.hibernate5.LocalSessionFactoryBean但是從容器中取出的時候,是取得它生成的SessionFactory.
要不然會產生異常Exception in thread "main" org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'localSessionFactoryBean' must be of type [org.springframework.orm.hibernate5.LocalSessionFactoryBean], but was actually of type [org.hibernate.internal.SessionFactoryImpl]
二。java配置方式
1.新建工程javaBasedspringhelloword,將上述hibernate配置移植到本工程。
2.新添加jar包spring-aop-4.2.2.RELEASE.jar
3.填寫配置文件java類 Appconfig.java
內容如下:
package com.sushengmiyan.hellospring.helloHibernate5;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.orm.hibernate5.LocalSessionFactoryBean;@Configuration public class AppConfig {@Beanpublic LocalSessionFactoryBean localSessionFactoryBean(){LocalSessionFactoryBean localSessionFactoryBean = new LocalSessionFactoryBean();localSessionFactoryBean.setConfigLocation(new ClassPathResource("hibernate.cfg.xml"));return localSessionFactoryBean;} } 此等同于上述xml配置中的Application.xml文件。
4.測試類書寫
package com.sushengmiyan.hellospring.helloHibernate5;import org.hibernate.SessionFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class Spring4WithHibernate5HelloTest {public static void main(String[] args) {ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);SessionFactory sf = context.getBean("localSessionFactoryBean", SessionFactory.class);System.out.println(sf); }} 運行也可以看到正常輸出。
轉載于:https://www.cnblogs.com/muyuge/p/6152460.html
總結
以上是生活随笔為你收集整理的实例演示如何在spring4.2.2中集成hibernate5.0.2并创建sessionFactory的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【学习/研发】嵌入式Linux/Andr
- 下一篇: 文件系统fsd hook (一)原理