spring配置文件:
<context:component-scan base-package="com.sincere" />
<!--
载入.properties属性文件
classpath表示类路径,在WEB应用中就是clases下,
只有单个.properties属性文件时,使用这种方式
<context:property-placeholder location="classpath:jdbc.properties" />
-->
<!-- 指定属性文件地址,可以在这里定义多个属性文件
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:smtp.properties</value>
<value>classpath:jdbc.properties</value>
</list>
</property>
<property name="fileEncoding" value="utf-8"/>
</bean>
-->
<!-- 使用数据源和指定persistence.xml位置的方式创建entityManagerFactory,如果使用的不是hibernate JPA实现,
需要在tomcat作一些特殊配置.具体参考手册
注意:使用该方式需要把persistence.xml中的hibernate.connection.driver_class,hibernate.connection.username,hibernate.connection.password,hibernate.connection.url配置删除
-->
<!-- 只有单个.properties属性文件时,才能使用使用这种方式-->
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- 数据源信息 ,集成DBCP连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driverClassName}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<property name="initialSize" value="${initialSize}" />
<property name="maxActive" value="${maxActive}" />
<property name="maxIdle" value="${maxIdle}" />
<property name="minIdle" value="${minIdle}" />
</bean>
<!--
数据源信息 ,集成proxool连接池
参数:1、driverUrl 用户名及密码写在 url 中
2、user和password 用户名及密码写在 url 中,在以下属性中用户名及密码可不写,但该属性必须存在。
3、prototypeCount 一旦发现空闲的连接数没达到该值将建链
4、simultaneousBuildThrottle 一次建链的数量,生产环境可设置为5
5、maximumConnectionCount 生产环境应把该值设置为50
6、minimumConnectionCount 生产环境应把该值设置为10
7、maximumActiveTime 每连接每次使用的最大时长(毫秒)
8、houseKeepingSleepTime proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁
9、overloadWithoutRefusalLifetime 满负载时,等待的时长
10、trace 是否启用日志跟综
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="driverUrl" value="jdbc:mysql://localhost:3306/priceangelsmmdb?user=yourname&password=yourpass&useUnicode=true&characterEncoding=UTF-8" />
<property name="user" value="root" />
<property name="password" value="mysql" />
<property name="prototypeCount" value="5" />
<property name="simultaneousBuildThrottle" value="5" />
<property name="maximumConnectionCount" value="10000" />
<property name="minimumConnectionCount" value="10" />
<property name="maximumActiveTime" value="300000" />
<property name="houseKeepingSleepTime" value="90000" />
<property name="houseKeepingTestSql" value="select 1 from dual" />
<property name="overloadWithoutRefusalLifetime" value="30000" />
<property name="trace" value="true" />
</bean>-->
<!-- ============================================spring与JPA集成配置开始=================================================================== -->
<!-- Spring与JPA的集成,也就只要配制entityManagerFactory和transactionManager两个Bena,就可以了 -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
<property name="loadTimeWeaver">
<bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
</property>
</bean>
<!-- 没有使用数据源时Spring集成JPA,参数"persistenceUnitName"的值必需与persistence.xml文件里的<persistence-unit name="jpatest" transaction-type="RESOURCE_LOCAL">,name的值相同
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="itcast"/>
</bean>
-->
<!-- 指定所使用的事务管理器,来管理数据库事务,这里指定了使用的是JPA事务管理器(也还有别的事务管理器,如果Hibernate事务管理器) -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<!-- ============================================spring与JPA集成配置结束=================================================================== -->
<!--============================================================================================================
Make all @Transactional beans
将所有具有@Transactional注解的Bean 自动配置为声明式事务支持
<tx:annotation-driven ..../>这一行配置用于开启声明式事务功能的,如果说只注释@Transactional,也是没有事务支持的.
事务边界被限制在每个具有事务功能的对象方法中,在方法调用时开始事务,在方法返回时提交事务.
@Transactional 定义在类或接口中,此时事务边界被限制在对象中的每个方法前后
============================================================================================================-->
<!-- Activates @Transactional for DefaultImageDatabase -->
<tx:annotation-driven transaction-manager="transactionManager" />
jpa配置文件persistence.xml
<persistence-unit name="jpatest" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<!--
使用数据源和指定persistence.xml位置的方式创建entityManagerFactory,如果使用的不是hibernate JPA实现,
需要在tomcat作一些特殊配置.具体参考手册
注意:使用该方式需要把persistence.xml中的hibernate.connection.driver_class,hibernate.connection.username,hibernate.connection.password,hibernate.connection.url配置删除
<property name="hibernate.connection.driver_class" value="org.gjt.mm.mysql.Driver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="root"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jpatest?useUnicode=true&characterEncoding=UTF-8"/>
-->
<property name="hibernate.max_fetch_depth" value="3"/>
<!--
说明:这里所指的创建和更新都是要数据库已经存在的情况下,即它只是去创建和更新表结构,而不会创建数据库
validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
create-drop 加载hibernate时创建,退出是删除表结构
update 加载hibernate自动更新数据库结构(更新过程中,删除JavaBean属性时时不会把数据库的字段也一同删除,当添加一个JavaBean时属性时总是会把数据库表中这个的这个字段设计成可以为空)
总结:
1.请慎重使用此参数,没必要就不要随便用。
2.如果发现数据库表丢失,请检查hibernate.hbm2ddl.auto的配置 可设置 <property name="hibernate.hbm2ddl.auto" value="none" />
-->
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.jdbc.fetch_size" value="18"/>
<property name="hibernate.jdbc.batch_size" value="10"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
分享到:
相关推荐
这篇博客“简单的spring整合JPA”将向我们展示如何将这两个强大的工具结合在一起,以便更高效地进行数据库操作。 首先,我们需要理解Spring与JPA整合的基本概念。Spring框架提供了一个名为Spring Data JPA的模块,...
Spring整合JPA与MySQL是现代Java企业级应用中常见的数据持久化方案,它结合了Spring框架的灵活性和Java Persistence API(JPA)的强大功能,同时利用MySQL作为关系型数据库,提供高效、便捷的数据存储和查询能力。...
**Spring整合JPA详解** Spring框架是Java领域中极为重要的一个组件,它为开发者提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、事务管理等。而JPA(Java Persistence API)则是Java世界中用于对象关系映射...
**Spring 整合 JPA 知识点详解** Spring 框架是 Java 开发中最常用的轻量级框架之一,它提供了丰富的功能,包括依赖注入、面向切面编程以及多种数据访问集成。JPA(Java Persistence API)是 Java 平台上的一个标准...
在IT行业中,Spring框架...在"Spring集成JPA和MyBatis简单例子-20170622"这个压缩包中,可能包含了示例代码,演示了如何在Spring项目中配置和使用这两种技术,这对于初学者理解和实践Spring的集成能力具有很大的帮助。
在Spring整合JPA的过程中,首先需要在项目中添加相关的依赖。如果使用Maven,我们需要在pom.xml文件中加入Spring、Spring Data JPA和Hibernate的相关依赖。例如: ```xml <!-- Spring framework --> <groupId>...
6. **Integration with Spring MVC**:Spring Data JPA 可以无缝集成到 Spring MVC 应用中,方便在 Web 层进行数据操作。通过 ModelMapper 和 Controller 方法,可以直接将 Repository 中的数据转换为视图模型并返回...
5. **事务管理**:Spring Data JPA集成Spring的事务管理,可以方便地在方法级别控制事务的开始、提交、回滚,确保数据一致性。 6. ** auditing**:Spring Data JPA还提供了审计功能,通过`@CreationTimestamp`和`@...
Spring集成JPA(Java Persistence API)是将Spring框架与ORM(Object-Relational Mapping)解决方案之一的Hibernate结合使用的常见实践。这个例子展示了如何在Spring应用中配置和使用JPA,以便利用Hibernate作为JPA...
Spring Data JPA的主要优点在于其高度的开发效率、成熟的语法结构以及与Spring框架的紧密集成。 1. **开发效率极高**: - Spring Data JPA通过提供自动化的 Repository 实现,减少了大量手动编写SQL和DAO层代码的...
本教程将深入探讨如何在Spring Boot项目中整合Spring Data JPA,实现高效且简洁的数据持久化。 首先,Spring Boot整合Spring Data JPA的基础是引入相关的依赖。在`pom.xml`或`build.gradle`文件中,我们需要添加...
Struts2整合Spring和JPA是企业级Java应用开发中常见的技术组合,它们分别负责不同的职责:Struts2作为一款成熟的MVC框架,主要用于处理Web层的请求与响应;Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和...
Spring整合JPA(Java Persistence API)是现代Java开发中常用的一种技术栈,它允许开发者以声明式的方式管理数据库操作,极大地简化了数据访问层的代码。Spring Data JPA是Spring框架的一部分,它提供了对JPA的高级...
Spring Data JPA的另一个强大特性是其与Spring Data Repositories的集成,它允许我们自定义复杂的查询,甚至支持分页和排序。通过定义接口方法,Spring Data会自动为我们生成对应的查询方法。 最后,Spring Data ...
在本项目中,我们主要探讨如何手动构建一个基于SpringMVC、Spring Data JPA、Hibernate以及FreeMarker模板引擎的Maven工程,同时实现环境切换功能。这个基础框架为日常开发工作提供了必要的支持。 首先,SpringMVC...
这是整合SpringMVC+Spring+SpringDataJPA+Hibernate简单的实现登录的功能,用的是mysql数据库,这是一个web Project 如果你用的是JavaEE6那么你要注意bean-validator.jar和weld-osgi-bundle.jar与slf4j的jar包冲突。...
- 整合测试:使用Spring Boot的Test Slice功能,我们可以方便地编写针对特定组件的单元测试,比如Repository的集成测试。 通过学习和实践这个项目,开发者可以在短短三小时内快速掌握SpringBoot整合SpringData JPA...
本示例将详细讲解如何在Spring环境中集成JPA与MyBatis,以实现灵活的数据访问。 首先,让我们深入了解这两个框架。JPA是Java标准的ORM(Object-Relational Mapping)框架,它允许开发者用面向对象的方式处理数据库...
- **集成其他 Spring 功能**:与其他 Spring 模块无缝集成,如 Spring Security、Spring Batch 等。 **3. Spring Data JPA 的基本配置** 在项目中引入 Spring Data JPA 和相应的 JPA 实现(如 Hibernate),配置...