江苏省建设工程质量监督站网站优设网专利
news/
2025/9/24 8:45:42/
文章来源:
江苏省建设工程质量监督站网站,优设网专利,青岛网站制作辰星辰,a链接下载wordpress1.概述 本文将重点介绍通过Spring设置Hibernate 3 –我们将研究如何同时使用XML和Java配置通过Hibernate 3和MySQL设置Spring 3。 2. Hibernate 3的Java Spring配置 使用Spring和Java配置来设置Hibernate 3很简单#xff1a; import java.util.Properties;
import javax.sql… 1.概述 本文将重点介绍通过Spring设置Hibernate 3 –我们将研究如何同时使用XML和Java配置通过Hibernate 3和MySQL设置Spring 3。 2. Hibernate 3的Java Spring配置 使用Spring和Java配置来设置Hibernate 3很简单 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.hibernate3.HibernateTransactionManager;
import org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean;
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 AnnotationSessionFactoryBean sessionFactory() {AnnotationSessionFactoryBean sessionFactory new AnnotationSessionFactoryBean();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));}};}
} 与XML配置如下所述相比配置中的一个Bean访问另一个Bean的方式略有不同。 在XML中 指向bean或指向能够创建该bean的bean工厂之间没有区别。 由于Java配置是类型安全的-不再直接指向Bean工厂-我们需要从Bean工厂中手动检索Bean txManager.setSessionFactory(sessionFactory().getObject()); 同样我们也可以使用XML配置来设置Hibernate 3 ?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.hibernate3.annotation.AnnotationSessionFactoryBeanproperty 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.hibernate3.HibernateTransactionManagerproperty namesessionFactory refsessionFactory //beanbean idpersistenceExceptionTranslationPostProcessor classorg.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor//beans 然后使用Configuration类将该XML文件引导到Spring上下文中 Configuration
EnableTransactionManagement
ImportResource({ classpath:persistenceConfig.xml })
public class PersistenceXmlConfig {//
} 对于这两种配置类型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-drop4. SpringHibernate和MySQL 上面的示例使用MySQL 5作为配置有Hibernate的基础数据库-但是Hibernate支持多个基础SQL数据库 。 4.1。 司机 通过提供给数据源的jdbc.driverClassName属性配置驱动程序类名称。 在上面的示例中从本文开头的pom中定义的mysql-connector-java依赖项将其设置为com.mysql.jdbc.Driver 。 4.2。 方言 通过提供给Hibernate SessionFactory 的hibernate.dialect属性来配置方言。 在上面的示例中将其设置为org.hibernate.dialect.MySQL5Dialect因为我们使用MySQL 5作为基础数据库。 还有其他几种支持MySQL的方言 org.hibernate.dialect.MySQL5InnoDBDialect –适用于具有InnoDB存储引擎MySQL 5.x org.hibernate.dialect.MySQLDialect –适用于5.x之前MySQL org.hibernate.dialect.MySQLInnoDBDialect –适用于使用InnoDB存储引擎的5.x之前MySQL org.hibernate.dialect.MySQLMyISAMDialect –适用于带有ISAM存储引擎的所有MySQL版本 Hibernate 支持每个支持的数据库的SQL方言 。 5.用法 至此Hibernate 3已通过Spring进行了完整配置我们可以在需要时直接注入原始的Hibernate SessionFactory public abstract class FooHibernateDAO{AutowiredSessionFactory sessionFactory;...protected Session getCurrentSession(){return sessionFactory.getCurrentSession();}
}6. Maven 要将Spring Persistence依赖项添加到pom请参见Spring with Maven示例 –我们需要定义spring-context和spring-orm 。 继续使用Hibernate 3Maven依赖项很简单 dependencygroupIdorg.hibernate/groupIdartifactIdhibernate-core/artifactIdversion3.6.10.Final/version
/dependency 然后要使Hibernate使用其代理模型我们还需要javassist dependencygroupIdorg.javassist/groupIdartifactIdjavassist/artifactIdversion3.18.0-GA/version
/dependency 在本教程中我们将使用MySQL作为数据库因此我们还需要 dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.25/versionscoperuntime/scope
/dependency 最后我们将不再使用Spring数据源实现– DriverManagerDataSource ; 相反我们将使用可用于生产环境的连接池解决方案-Tomcat JDBC连接池 dependencygroupIdorg.apache.tomcat/groupIdartifactIdtomcat-dbcp/artifactIdversion7.0.41/version
/dependency7.结论 在这个例子中 我们使用Spring配置了Hibernate 3 –都使用Java和XML配置。 这个简单项目的实现可以在github项目中找到–这是一个基于Eclipse的项目因此应该很容易直接导入和运行。 参考来自bakgung博客的JCG合作伙伴 Eugen Paraschiv 提供的Spring的Hibernate 3 。 翻译自: https://www.javacodegeeks.com/2013/05/hibernate-3-with-spring.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915392.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!