spring整合hibernate
个人感觉比较好的spring 整合hibernate的方式
一、添加依赖
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> </dependency> <!-- hibernate --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-ehcache</artifactId> </dependency>
二、在spring的core配置文件中配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 引入配置文件 --> <context:property-placeholder location="classpath:conf.properties" /> <!-- c3p0数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <!-- 基本配置 --> <property name="driverClass" value="${c3p0.driverClass}" /> <property name="jdbcUrl" value="${c3p0.jdbcUrl}" /> <property name="user" value="${c3p0.user}" /> <property name="password" value="${c3p0.password}" /> <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --> <property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}" /> <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --> <property name="maxIdleTime" value="${c3p0.maxIdleTime}" /> <!--连接池中保留的最小连接数。 --> <property name="minPoolSize" value="${c3p0.minPoolSize}" /> <!--连接池中保留的最大连接数。Default: 15 --> <property name="maxPoolSize" value="${c3p0.maxPoolSize}" /> <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 --> <property name="initialPoolSize" value="${c3p0.initialPoolSize}" /> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <property name="acquireIncrement" value="${c3p0.acquireIncrement}" /> <!--每60秒检查所有连接池中的空闲连接。Default: 0 --> <property name="idleConnectionTestPeriod" value="${c3p0.idleConnectionTestPeriod}" /> </bean> <bean id="mySessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="hibernateProperties"> <props> <!-- 自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value="none" --> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> <!-- 方言 --> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <!-- 打印sql --> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <!-- 格式化sql --> <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> </props> </property> <!-- 注解方式配置 --> <property name="packagesToScan"> <list> <value>com.web.common.bean.entity</value> </list> </property> </bean> <bean id="myTxManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="mySessionFactory" /> </bean> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" p:dataSource-ref="dataSource" /> <!-- 1.注解方式配置事务 --> <tx:annotation-driven transaction-manager="transactionManager" /> </beans>
第三步、测试
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(value="classpath:/spring/spring-core.xml") public class UserTest { @Autowired private SessionFactory sessionFactory; @Test public void test(){ Session session = sessionFactory.openSession(); User user = new User(); user.setCreateTime(new Date()); user.setEditTime(user.getCreateTime()); user.setNickName("4444"); user.setSex("1"); user.setUserNo("232"); user.setPassword("333"); user.setStatusId("Y"); session.save(user); } }

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Spring Cloud Gateway 整合Eureka路由转发
网关负责转发工作,那么它需要知道后端的服务信息,今天我们来学习下Spring Cloud Gateway 整合Eureka的操作,实现服务转发功能。 在之前的基础上添加eureka-client的依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency> 下面就是配置具体的转发规则了,这边需要注意下的是uri的配置: server: port: 8084spring: cloud: gateway: routes: - id: fsh-house uri: lb://fsh-house predicates: - Path=/house/** application: name: fangjia-gateway eureka: instance:...
-
下一篇
微服务下的网关与容错【转】
自从微服务概念以来,众多的软件架构在践行着这一优秀的设计理念。各自的系统在这一指导思想下收获了优雅的可维护性,但一方面也给接口调用提出了新的要求。比如众多的API调用急需一个统一的入口来支持客户端的调用。在这种情况下API GATEWAY诞生,我们将接入、路由、限流等功能统一由网关负责,各自的服务提供方专注于业务逻辑的实现,从而给客户端调用提供了一个稳健的服务调用环境。之后,我们在网关大调用量的情况下,还要保证网关的可降级、可限流、可隔离等等一系列容错能力。 一、网关 这里说的网关是指API网关,直面意思是将所有API调用统一接入到API网关层,有网关层统一接入和输出。一个网关的基本功能有:统一接入、安全防护、协议适配、流量管控、长短链接支持、容错能力。有了网关之后,各个API服务提供团队可以专注于自己的的业务逻辑处理,而API网关更专注于安全、流量、路由等问题。 1.1、单体应用 图1:单体应用 业务简单,团队组织很小的时候,我们常常把功能都集中于一个应用中,统一部署,统一测试,玩的不易乐乎。但随着业务迅速发展,组织成员日益增多。我们再将所有的功能集中到一个TOMCAT中去,每当更新...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL数据库在高并发下的优化方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果