- 浏览: 1407123 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
nakin1991:
[b][b][b][u][/u][/b][/b][/b]
Spring学习笔记(9)----让Spring自动扫描和管理Bean -
bishibaodian:
不要在这样找笔试题了,一次就这么几个,还没过瘾就没有了,去安装 ...
java笔试试题 -
长白LZ:
very good
周鸿祎在360新员工入职培训上的讲话 -
blacklong:
多谢楼主,哈哈~~
在线购物系统(J2EE 含源码) -
gergul:
没有效果。。而且有广告。
C#水波纹特效自定义控件
使用Spring+JDBC集成步骤如下:
*配置数据源,例如:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="123456"/> <!-- 连接池启动时的初始值 --> <property name="initialSize" value="1"/> <!-- 连接池的最大值 --> <property name="maxActive" value="100"/> <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 --> <property name="maxIdle" value="2"/> <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 --> <property name="minIdle" value="1"/> </bean>
*配置事务,配置事务时,需要在xml配置文件中引入用于声明事务的tx命名空间,事务的配置有两种方式:注解方式和基于XML配置的方式
下面演示下使用Spring注解方式管理事务
首先在配置文件中配置Spring提供的事务管理器
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 指定数据源 --> <property name="dataSource" ref="dataSource"/> </bean>
由于会使用注解方式,因此我们要打开注解处理器,对注解进行解析
<tx:annotation-driven transaction-manager="txManager"/>
这样我们的配置文件配置完成,下面我们在Mysql中建立一张表,
create table users ( id int(11) not null auto_increment, username varchar(20) not null, primary key (id) )
根据数据库,我们创建javabean
package com.szy.spring.bean; /** * @author coolszy * @time Dec 6, 2009 2:13:33 PM */ public class User { private int id; private String username; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } }
然后创建DAO接口,在DAO中提供几个方法:
package com.szy.spring.dao; import java.util.List; import com.szy.spring.bean.User; public interface UserDAO { public void save(User user); public void update(User user); Public User getUser(int id); public void delete(int id); public List<User> getAllUsers(); }
实现这个接口
package com.szy.spring.dao.impl; import java.util.List; import com.szy.spring.bean.User; import com.szy.spring.service.UserService; /** * @author coolszy * @time Dec 6, 2009 2:19:22 PM */ public class UserDAOImpl implements UserDAO { public void delete(int id) { } public List<User> getAllUsers() { return null; } public User getUser(int id) { } public void save(User user) { } public void update(User user) { } }
下面把这个类交给Spring管理
<bean id="userDAO" class="com.szy.spring.dao.impl.UserDAOImpl"/>
由于要通过数据源对表进行操作,因此在DAO中添加数据源。
private DataSource dataSource; public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; }
然后在配置文件中进行配置
<bean id="userDAO" class="com.szy.spring.service.impl.UserDAOImpl"> <property name="dataSource" ref="dataSource"/> </bean>
这样我们就把数据源注入到类中。
在UserDAOImpl类中我们提供了dataSource,这样我们就可以对数据库进行操作,但是不推荐直接使用dataSource,建议使用JdbcTemplate
private JdbcTemplate jdbcTemplate; public void setDataSource(DataSource dataSource) { //this.dataSource = dataSource; this.jdbcTemplate=new JdbcTemplate(dataSource); }
下面我们使用jdbcTemplate对数据库进行增删改查,详细代码见附件。
package com.szy.spring.dao.impl; import java.util.List; import javax.sql.DataSource; import org.springframework.jdbc.core.JdbcTemplate; import com.szy.spring.bean.User; import com.szy.spring.dao.UserDAO; /** * @author coolszy * @time Dec 6, 2009 2:19:22 PM */ public class UserDAOImpl implements UserDAO { //private DataSource dataSource; private JdbcTemplate jdbcTemplate; public void setDataSource(DataSource dataSource) { //this.dataSource = dataSource; this.jdbcTemplate=new JdbcTemplate(dataSource); } public void delete(int id) { jdbcTemplate.update("delete from users where id=?", new Object[]{id}, new int[]{java.sql.Types.INTEGER}); } public List<User> getAllUsers() { return (List<User>)jdbcTemplate.query("select * from users", new UserRowMapper()); } public User getUser(int id) { return (User)jdbcTemplate.queryForObject("select * from users where id=?", new Object[]{id}, new int[]{java.sql.Types.INTEGER}, new UserRowMapper()); } public void save(User user) { jdbcTemplate.update("insert into users(username) values(?)", new Object[]{user.getUsername()}, new int[]{java.sql.Types.VARCHAR}); } public void update(User user) { jdbcTemplate.update("update users set username=? where id=?", new Object[]{user.getUsername(),user.getId()}, new int[]{java.sql.Types.VARCHAR, java.sql.Types.INTEGER}); } }
编写测试代码,代码运行正常。
在我们实现的每个方法中如delete()方法,如果delete方法是这样
public void delete(int id) { jdbcTemplate.update("delete from users where id=?", new Object[]{id}, new int[]{java.sql.Types.INTEGER}); jdbcTemplate.update("delete from users where id=?", new Object[]{id}, new int[]{java.sql.Types.INTEGER}); }
这样每条语句都会在各自的事务中执行,并不能保证在同一使用中执行,为了保证在同一事务中执行,我们应使用Spring容器提供的声明事务,我们在UserDAOImpl 类上加入@Transactional,表示该类受Spring事务管理。如果该类中每个方法不需要事务管理,如getUser方法,则在该方法前加入
@Transactional(propagation=Propagation.NOT_SUPPORTED)
PS:在上面的配置文件中我们在配置文件中指明了驱动类等信息,如果我们想写在配置文件中要怎么配置能,首先我们编写配置文件,
driverClassName=com.mysql.jdbc.Driver url=jdbc\:mysql\://localhost\:3306/test username=root password=123456 initialSize=1 maxActive=100 maxIdle=2 minIdle=1
然后Spring的配置文件需进行如下配置:
<context:property-placeholder location="classpath:jdbc.properties"/> <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>
这样就可以从属性文件中读取到配置信息。
- 17_使用Spring注解方式管理事务.rar (5.2 MB)
- 下载次数: 90
发表评论
-
Spring学习笔记(18)----使用Spring配置文件实现事务管理
2009-12-06 18:36 2038由于我们要拦截UserDAOImpl中的方法,因此我们需要在配 ... -
Spring学习笔记(16)----使用Spring配置文件实现AOP
2009-12-04 22:14 1954前面介绍了使用注解的方式,下面介绍使用配置文件的方式实现AOP ... -
Spring学习笔记(15)----使用Spring的注解方式实现AOP
2009-12-03 21:48 2225下面介绍使用Spring框架进行AOP编程。 首先我们需要导 ... -
Spring学习笔记(14)----使用CGLIB实现AOP功能
2009-12-03 21:36 2861好久没学习spring了,今天接着学习。 接着这上面的例子, ... -
Spring学习笔记(13)----动态代理模式分析演示
2009-11-22 15:54 1886上一节演示的是静态代理模式,本节演示的是静态代理模式,既然是动 ... -
Spring学习笔记(12)----静态代理模式分析演示
2009-11-22 15:33 1752代理模式分为静态代理和动态代理。静态代理就是我们自己定义的代理 ... -
Spring学习笔记(11)----自定义属性编辑器
2009-11-21 14:57 2337前面我们所定义的属性都是几本的属性,如果我们定义一个属性是Da ... -
Spring学习笔记(10)----公共属性的注入配置
2009-11-20 09:01 2370假设我们定义了四个bean类,其代码分别如下: packag ... -
Spring学习笔记(9)----让Spring自动扫描和管理Bean
2009-11-18 11:14 4439package com.szy.spring.service; ... -
Spring学习笔记(8)----属性注入的方式
2009-11-17 18:14 2375Spring中属性注入的方式有三种: 1.使用属性sette ... -
Spring学习笔记(7)----装配各种集合类型的属性
2009-11-09 19:56 1867前面已经介绍了如何给属性注入对象,下面介绍一下如何装配集合类型 ... -
Spring学习笔记(6)----编码剖析Spring依赖注入的原理
2009-11-07 21:51 1498在Spring学习笔记(3)中剖析了Spring管理Bean的 ... -
Spring学习笔记(5)----依赖注入的简单实现
2009-11-04 22:06 2272Spring的核心机制是依赖注入。依赖注入让bean与bean ... -
Spring学习笔记(4)----Bean节点信息配置
2009-11-03 21:19 2346默认情况下,Spring的Ioc容器启动时会初始化bean,但 ... -
Spring学习笔记(3)----编码剖析Spring管理Bean的原理
2009-11-03 20:52 3360<?xml version="1.0" ... -
Sping学习笔记(2)----实例化Bean的三种方式
2009-11-02 22:03 2313Spring的实例化Bean有三种方式: 使用类构造器直接 ... -
Spring学习笔记(1)----简单的实例
2009-11-02 21:32 2704开始接触Spring了,写 ...
相关推荐
NULL 博文链接:https://coolszy.iteye.com/blog/540465
(一) Annotation注解方式配置事务管理 31 (二) Spring事务选项 35 (三) XML文件形式配置Spring事务管理 37 四、 HibernateTemplate 38 (一) HibernateTemplate 38 (二) HibernateDaoSupport 39 第十一课:Spring整合...
2.使用 Junit 提供的一个注解把原有的 main 方法替换了,替换成 Spring 提供的 3.告知 Spring 的运行器, Spring 和 ioc
springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...
内容概要:学习Spring的一些学习笔记,主要学习Spring 框架两大核心机制(IoC、AOP) 笔记大纲:阅读笔记可以学习了解一下内容 如何使用 IoC ;配置文件;IoC 底层原理;通过运行时类获取 bean;通过有参构造创建 ...
springboot的入门技术,详细的介绍了相关的技术信息,从spring的注解开发到最终的springboot整合mybatis,redis集群的组合都有详细的介绍
Java-Spring-SpringIoC容器-SpringIoC的学习 SpringIoC容器的学习笔记 主要介绍了IoC容器工作原理以及如何配置IoC容器 通过标签和注解配置容器
(一) Annotation注解方式配置事务管理 31 (二) Spring事务选项 35 (三) XML文件形式配置Spring事务管理 37 四、 HibernateTemplate 38 (一) HibernateTemplate 38 (二) HibernateDaoSupport 39 第十一课:Spring整合...
Spring入门学习笔记,内容包括Spring介绍,Spring配置文件,Spring配置数据源,Spring的注解开发,Spring集成Junit,Spring的AOP,jdbcTemplate介绍,Spring控制事务流程,Spring集成web。
Spring2.5注解(标注)学习笔记: 一句话:对开发人员来说:最常用的Spring2.5最常用的注解就4个: @Resource @Qualifier @Service @Repository
声明式事务控制Spring提供对事务的控制管注解方式事务属性事务传播为如果当前方法有事务,当前方法事务会挂起,在为加入的方法开启一个新的事务,直到新的事务执完、
基于注解的spring_3.0.x_MVC学习笔记
简单介绍了springdata的知识,包含了springdata 的环境搭建,注解开发等,还有一系列相关的代码供参考。
两万多元参加的java求职培训,名师讲课的资料,针对性强。适合初学者,求职者。
SpringAOP学习笔记以及四个可运行的Demo,涵盖经典代理模式、基于注解、基于xml配置这3方面的Demo
SpringCloud学习笔记1. maven父子项目父工程配置新项目,maven,父工程名称字符编码,设置,编辑器文件编码注解功效激活java编译选择1.8 文件类型文件过滤删除掉父工程下的src,只保留一个pom.xml父工程的pom.xml...
Spring学习之(四)基于注解的组件扫描;学习笔记
主要介绍了Spring学习笔记1之IOC详解尽量使用注解以及java代码 的相关资料,需要的朋友可以参考下