做内贸什么网站资源比较多,网站建设的常用技术有哪些,东营建设工程招标投标信息网,wordpress分类栏目关键词1.概述 本文将重点介绍如何使用Spring设置Hibernate 4 –我们将研究如何使用Java和XML配置来使用Hibernate 4配置Spring 3。 当然#xff0c;该过程的某些部分对于Hibernate 3文章是通用的 。 2. Maven 要将Spring Persistence依赖项添加到项目pom.xml中 #xff0c;请参阅专… 1.概述 本文将重点介绍如何使用Spring设置Hibernate 4 –我们将研究如何使用Java和XML配置来使用Hibernate 4配置Spring 3。 当然该过程的某些部分对于Hibernate 3文章是通用的 。 2. Maven 要将Spring Persistence依赖项添加到项目pom.xml中 请参阅专注于Spring和Maven依赖项的文章 。 继续使用Hibernate 4Maven依赖项很简单 dependencygroupIdorg.hibernate/groupIdartifactIdhibernate-core/artifactIdversion4.2.4.Final/version
/dependency 然后要使Hibernate使用其代理模型我们还需要javassist dependencygroupIdorg.javassist/groupIdartifactIdjavassist/artifactIdversion3.18.0-GA/version
/dependency 并且由于我们将在本教程中使用MySQL因此我们还需要 dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.26/versionscoperuntime/scope
/dependency 最后我们使用了正确的连接池而不是仅开发人员的Spring实现– DriverManagerDataSource 。 我们在这里使用Tomcat JDBC连接池 dependencygroupIdorg.apache.tomcat/groupIdartifactIdtomcat-dbcp/artifactIdversion7.0.41/version
/dependency3. Hibernate 4的Java Spring配置 要在项目中使用Hibernate 4从Hibernate 3设置迁移时配置方面需要进行一些更改。 从Hibernate 3升级时主要不同之处是使用Hibernate 4创建SessionFactory的方式。 它取代从Hibernate3的包老AnnotationSessionFactoryBean -这是现在从hibernate4包使用LocalSessionFactoryBean的完成。 新的FactoryBean承担同样的责任-从注释扫描中引导SessionFactory 。 这是必需的因为从Hibernate 3.6开始旧的AnnotationConfiguration 已合并到Configuration中 因此新的Hibernate 4 LocalSessionFactoryBean使用此新的Configuration机制。 还值得一提的是在Hibernate中4Configuration.buildSessionFactory方法和机制也被弃用 赞成 Configuration.buildSessionFactoryServiceRegistry -这春天LocalSessionFactoryBean中尚未使用。 Hibernate 4的Spring Java配置 import java.util.Properties;
import javax.sql.DataSource;
import org.apache.tomcat.dbcp.dbcp.BasicDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.google.common.base.Preconditions;Configuration
EnableTransactionManagement
PropertySource({ classpath:persistence-mysql.properties })
ComponentScan({ org.baeldung.spring.persistence })
public class PersistenceConfig {Autowiredprivate Environment env;Beanpublic LocalSessionFactoryBean sessionFactory() {LocalSessionFactoryBean sessionFactory new LocalSessionFactoryBean();sessionFactory.setDataSource(restDataSource());sessionFactory.setPackagesToScan(new String[] { org.baeldung.spring.persistence.model });sessionFactory.setHibernateProperties(hibernateProperties());return sessionFactory;}Beanpublic DataSource restDataSource() {BasicDataSource dataSource new BasicDataSource();dataSource.setDriverClassName(env.getProperty(jdbc.driverClassName));dataSource.setUrl(env.getProperty(jdbc.url));dataSource.setUsername(env.getProperty(jdbc.user));dataSource.setPassword(env.getProperty(jdbc.pass));return dataSource;}Beanpublic HibernateTransactionManager transactionManager() {HibernateTransactionManager txManager new HibernateTransactionManager();txManager.setSessionFactory(sessionFactory().getObject());return txManager;}Beanpublic PersistenceExceptionTranslationPostProcessor exceptionTranslation() {return new PersistenceExceptionTranslationPostProcessor();}Properties hibernateProperties() {return new Properties() {{setProperty(hibernate.hbm2ddl.auto, env.getProperty(hibernate.hbm2ddl.auto));setProperty(hibernate.dialect, env.getProperty(hibernate.dialect));setProperty(hibernate.globally_quoted_identifiers, true);}};}
}4. Hibernate 4的XML Spring配置 类似的 Hibernate 4也可以使用XML进行配置 ?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsdcontext:property-placeholder locationclasspath:persistence-mysql.properties /bean idsessionFactory classorg.springframework.orm.hibernate4.LocalSessionFactoryBeanproperty namedataSource refdataSource /property namepackagesToScan valueorg.baeldung.spring.persistence.model /property namehibernatePropertiespropsprop keyhibernate.hbm2ddl.auto${hibernate.hbm2ddl.auto}/propprop keyhibernate.dialect${hibernate.dialect}/prop/props/property/beanbean iddataSource classorg.apache.tomcat.dbcp.dbcp.BasicDataSourceproperty namedriverClassName value${jdbc.driverClassName} /property nameurl value${jdbc.url} /property nameusername value${jdbc.user} /property namepassword value${jdbc.pass} //beanbean idtxManager classorg.springframework.orm.hibernate4.HibernateTransactionManagerproperty namesessionFactory refsessionFactory //beanbean idpersistenceExceptionTranslationPostProcessor classorg.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor//beans 要将XML引导到Spring Context中如果应用程序配置了Java配置我们可以使用一个简单的Java配置文件 Configuration
EnableTransactionManagement
ImportResource({ classpath:hibernate4Config.xml })
public class HibernateXmlConfig{//
} 或者如果整体配置是纯XML的我们可以简单地将XML文件提供给Spring Context。 对于这两种配置类型JDBC和Hibernate特定的属性都存储在属性文件中 # jdbc.X
jdbc.driverClassNamecom.mysql.jdbc.Driver
jdbc.urljdbc:mysql://localhost:3306/spring_hibernate_dev?createDatabaseIfNotExisttrue
jdbc.usertutorialuser
jdbc.passtutorialmy5ql# hibernate.X
hibernate.dialectorg.hibernate.dialect.MySQL5Dialect
hibernate.show_sqlfalse
hibernate.hbm2ddl.autocreate-drop5. SpringHibernate和MySQL Hibernate 3支持的驱动程序和方言已针对Hibernate 3 进行了广泛讨论 -一切仍然适用于Hibernate 4。 6.用法 至此Hibernate 4已通过Spring进行了完整配置我们可以在需要时直接注入原始的Hibernate SessionFactory public abstract class BarHibernateDAO{AutowiredSessionFactory sessionFactory;...protected Session getCurrentSession(){return sessionFactory.getCurrentSession();}
} 这里重要的一点是现在这是推荐的使用Hibernate API的方法–旧的HibernateTemplate不再包含在新的org.springframework.orm.hibernate4包中因为它不应与Hibernate 4一起使用。 7.结论 在此示例中 我们使用Hiberate 4配置了Spring –都使用Java和XML配置。 这个简单项目的实现可以在github项目中找到–这是一个基于Eclipse的项目因此应该很容易直接导入和运行。 参考来自bakgung博客的JCG合作伙伴 Eugen Paraschiv 提供的Spring的Hibernate 4 。 翻译自: https://www.javacodegeeks.com/2013/05/hibernate-4-with-spring.html