毕业设计(五)---spring学习笔记(3)之-dataSource,sessionFactory,hibernateTemplate,事务 的简单配置。...
2019独角兽企业重金招聘Python工程师标准>>>
一:dataSource 数据源配置
在applicationContext.xml 中配置 dataSource
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><!-- 这里使用的dbcp方式,还有c3p0 和 proxool , 我没有使用,先不列举。 -->
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/数据库名"></property><property name="username" value="root"></property><property name="password" value="111111"></property><property name="maxIdle" value="30"></property> <property name="maxWait" value="10"></property> <property name="defaultAutoCommit" value="false"></property></bean>
在dao或者service 中注入,dataSource
public class UserDAOImpl implements UserDAO {
private DataSource dataSource ;public DataSource getDataSource(){return dataSource;
}@Resource //从bean中获取
public void setDataSource(DataSource dataSource){this.dataSource = dataSource;
}public void save(User user){
try{Connection conn = datasource.getConnection(); //dataSource 的方法, 获得连接。conn.createStatement().executeUpdate("insert into user values (null,'wangyi')");conn.close();}catch(SQLException e){e,printStackTrace();}}}}
二: sessionFactory配置:
方法一: 我们在spring的配置文件applicationContext.xml里面引用hibernate.cfg.xml (也就是保留hibernate.cfg.xml)
<!-- 配置sessionFactory --><bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation"><value>classpath:hibernate.cfg.xml</value></property> </bean>
方法二:不使用hibernate的 hibernate.cfg.xml 配置文件。
<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><!-- <property name="configLocation"><value>classpath:hibernate.cfg.xml</value></property>--><property name="dataSource" ref="dataSource"></property><property name="mappingResources"><list><value>com/bbs/model/Administrator.hbm.xml</value><value>com/bbs/model/Attention.hbm.xml</value><value>com/bbs/model/Collection.hbm.xml</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.show_sql">true</prop></props></property></bean>
三:hibernateTemplate :
xml配置:
<bean name="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory"></property></bean>
使用:
private HibernateTemplate hibernateTemplate;public HibernateTemplate getHibernateTemplate() {return hibernateTemplate;}@Resourcepublic void setHibernateTemplate(HibernateTemplate hibernateTemplate) {this.hibernateTemplate = hibernateTemplate;}
public List<Posts> searchAllPosts() {List<Posts> list = hibernateTemplate.find("from Posts");return list;}
四:事务:
<!-- dbcp data base connection pool --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/myblog"></property><property name="username" value="root"></property><property name="password" value="111111"></property></bean><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation"value="classpath:hibernate.cfg.xml"></property></bean><!-- 事务管理, 方法之前方法之后加点东西。。HibernateTransactionManager就是 aspect 切面类 --><bean id="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean>
<!-- Annotation 驱动的事务管理 我没有用到--><!-- <tx:annotation-driven transaction-manager="txManager" /> --> <!-- 在需要的方法上加上 @Transactional 会自动在前后加上关于事务的业务逻辑。tx.beginTransaction 和 tx.commit 或者是抛出错误 回滚 callback()-->
<!-- 下面进行的就是为方法加事务 -->
<tx:advice id="txAdvice" transaction-manager="txManager"><tx:attributes><tx:method name="*" propagation="REQUIRED" /><!-- propagation="REQUIRED"的意思,前面方法没有transaction就创建,有就不创建 --></tx:attributes></tx:advice><!-- advice是你想向别的程序内部不同的地方注入的代码。pointcut定义了需要注入advice的位置,通常是某个特定的类的一个public方法。advisor是pointcut和advice的装配器,是将advice注入主程序中预定义位置的代码。--><aop:config><aop:pointcut id="managerService"expression="execution(public * com.myblog.manager..*.*(..))" /><aop:advisor pointcut-ref="managerService" advice-ref="txAdvice" /></aop:config>
版权声明:本文为博主原创文章,未经博主允许不得转载。
转载于:https://my.oschina.net/wangt10/blog/508386
毕业设计(五)---spring学习笔记(3)之-dataSource,sessionFactory,hibernateTemplate,事务 的简单配置。...相关推荐
- 毕业设计(三)---spring学习笔记(1)之-IOC
2019独角兽企业重金招聘Python工程师标准>>> 框架搭建完毕,准备开始动手,理了一下思路,发现struts2 和 hibernate3 的各种公用都比较清楚,唯独对sprin ...
- Spring学习笔记之MyBatis
系列文章目录 Spring学习笔记 之 Springhttps://blog.csdn.net/weixin_43985478/article/details/124411746?spm=1001.2 ...
- spring学习笔记06-spring整合junit(出现的问题,解决的思路)
spring学习笔记06-spring整合junit(出现的问题,解决的思路) 文章目录 spring学习笔记06-spring整合junit(出现的问题,解决的思路) 3.1测试类中的问题和解决思路 ...
- Spring学习笔记:配置单数据源
Spring学习笔记:配置单数据源 一.Spring Boot默认数据源类型 Springboot默认支持4种数据源类型,定义在 org.springframework.boot.autoconfig ...
- 【Spring学习笔记 九】Spring声明式事务管理实现机制
什么是事务?事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用,关乎数据准确性的地方我们一定要用到事务,防止业务逻辑出错. 什么是事务管理,事务管理对于企业应用而言至 ...
- Spring 学习笔记----->AOP
Spring 学习笔记----->AOP 代理模式 为什么学代理模式? 因为这就是Spring Aop的底层 代理模式的分类: 静态代理 动态代理 静态代理 生活用的例子: 房东 public ...
- 一箭双雕 刷完阿里P8架构师spring学习笔记+源码剖析,涨薪8K
关于Spring的叙述: 我之前死磕spring的时候,刷各种资料看的我是一头雾水的,后面从阿里的P8架构师那里拿到这两份资料,从源码到案例详细的讲述了spring的各个细节,是我学Spring的启蒙 ...
- CHY的Spring学习笔记---师从动力节点王鹤老师(B站白嫖)
Spring学习笔记 核心技术:ioc和aop ioc:使用di(依赖注入)实现控制反转,底层使用的是反射机制 spring可以创建自己写的类的对象,也可以创建非自定义对象,只要知道类的全限定名即可. ...
- 【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传
作者:ssslinppp 1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.co ...
最新文章
- python中进制_python中进制的算法
- Screen返回选择界面的问题
- 小心使用innerHTML
- 业务专题篇:用户使用路径分析
- python入门知识大全_python基础知识有哪些
- 绘制三维散点图_SPSS统计作图教程:三维散点图
- Bound Found POJ - 2566(尺取法+前缀和创造区间变化趋势)
- oracle中间键配置,Oracle Exalogic中间件云服务器简介及产品配置特点(2)
- 移动发布手机病毒警示信息 发现六种新型病毒
- MEncoder的基础用法—6.3. 编码为双通道MPEG-4 (DivX)
- 数据挖掘原理与算法_【干货】UIUC韩家炜老师2020年新课:CS512 数据挖掘:原理与算法,附PPT...
- 电脑蓝屏分析教程,附工具WinDbg(x86 x64)6.12.0002.633下载
- 常用汉字库(约7千个)
- 数学表达式: 从恐惧到单挑 (7. min 与 argmin)
- 嵌入式linux模块复位,嵌入式linux下复位声卡驱动
- VC 蓝牙设备 编程
- hdu6105(博弈)
- 异构计算(Heterogeneous Compute)
- 带团队,不要轻易放弃任何一个队友
- 支持爱普生r330的打印服务器,软件让照片打印更专业_爱普生 R330_办公打印评测试用-中关村在线...