`
pengchua
  • 浏览: 150771 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Spring2.0中声明式事务管理(读spring2.0技术手册,林信良)

阅读更多

Spring2.0中声明式事务管理(<spring2.0技术手册>,林信良)<o:p></o:p>

<!---->1.    <!---->mysql中创建表user<o:p></o:p>

CREATE TABLE user (<o:p></o:p>

    id INT(11) NOT NULL auto_increment PRIMARY KEY,<o:p></o:p>

    name VARCHAR(100) NOT NULL default '',<o:p></o:p>

    age INT<o:p></o:p>

) Type = InnoDB;<o:p></o:p>

<!---->2.    <!---->编写userDAO<o:p></o:p>

public class UserDAO implements IUserDAO {<o:p></o:p>

    private JdbcTemplate jdbcTemplate;<o:p></o:p>

    <o:p></o:p>

    public void setDataSource(DataSource dataSource) {<o:p></o:p>

        jdbcTemplate = new JdbcTemplate(dataSource);<o:p></o:p>

    }<o:p></o:p>

    <o:p></o:p>

    public void insert(User user) {<o:p></o:p>

       String name = user.getName();<o:p></o:p>

       int age = user.getAge().intValue();<o:p></o:p>

       <o:p></o:p>

       jdbcTemplate.update("INSERT INTO user (name,age) " <o:p></o:p>

               + "VALUES('" + name + "'," + age + ")");<o:p></o:p>

    }<o:p></o:p>

<o:p> </o:p>

    public User find(Integer id) {<o:p></o:p>

        List rows = jdbcTemplate.queryForList(<o:p></o:p>

          "SELECT * FROM user WHERE id=" + id.intValue());<o:p></o:p>

        <o:p></o:p>

        Iterator it = rows.iterator();<o:p></o:p>

        if(it.hasNext()) {<o:p></o:p>

            Map userMap = (Map) it.next();<o:p></o:p>

<o:p> </o:p>

            Integer i = new Integer(userMap.get("id").toString());<o:p></o:p>

            String name = userMap.get("name").toString();<o:p></o:p>

            Integer age = <o:p></o:p>

                  new Integer(userMap.get("age").toString());<o:p></o:p>

<o:p> </o:p>

            User user = new User();<o:p></o:p>

            user.setId(i);<o:p></o:p>

            user.setName(name);<o:p></o:p>

            user.setAge(age);<o:p></o:p>

            <o:p></o:p>

            return user;<o:p></o:p>

        }<o:p></o:p>

<o:p> </o:p>

        return null;<o:p></o:p>

    }<o:p></o:p>

}<o:p></o:p>

<!---->3.    <!---->配置文件<o:p></o:p>

<?xml version="1.0" encoding="UTF-8"?> <o:p></o:p>

<beans xmlns="http://www.springframework.org/schema/beans"<o:p></o:p>

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<o:p></o:p>

  xmlns:aop="http://www.springframework.org/schema/aop"<o:p></o:p>

  xmlns:tx="http://www.springframework.org/schema/tx"<o:p></o:p>

  xsi:schemaLocation="http://www.springframework.org/schema/beans <o:p></o:p>

  http://www.springframework.org/schema/beans/spring-beans-2.0.xsd<o:p></o:p>

  http://www.springframework.org/schema/aop <o:p></o:p>

  http://www.springframework.org/schema/aop/spring-aop-2.0.xsd<o:p></o:p>

  http://www.springframework.org/schema/tx <o:p></o:p>

  http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"><o:p></o:p>

  <o:p></o:p>

    <bean id="dataSource" <o:p></o:p>

          class="org.springframework.jdbc.datasource.DriverManagerDataSource"<o:p></o:p>

          destroy-method="close">  <o:p></o:p>

        <property name="driverClassName" <o:p></o:p>

                  value="com.mysql.jdbc.Driver"/> <o:p></o:p>

        <property name="url"<o:p></o:p>

                  value="jdbc:mysql://localhost:3306/demo"/><o:p></o:p>

        <property name="username" value="root"/> <o:p></o:p>

        <property name="password" value="root"/> <o:p></o:p>

    </bean> <o:p></o:p>

    <o:p></o:p>

    <bean id="transactionManager" <o:p></o:p>

          class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <o:p></o:p>

        <property name="dataSource" ref="dataSource"/> <o:p></o:p>

    </bean> <o:p></o:p>

    <o:p></o:p>

    <bean id="userDAO" <o:p></o:p>

          class="onlyfun.caterpillar.UserDAO"><o:p></o:p>

        <property name="dataSource" ref="dataSource"/><o:p></o:p>

    </bean><o:p></o:p>

    <o:p></o:p>

    <tx:advice id="txAdvice" transaction-manager="transactionManager"><o:p></o:p>

        <tx:attributes><o:p></o:p>

            <tx:method name="insert*" propagation="REQUIRED"/><o:p></o:p>

            <tx:method name="find*" read-only="true"/><o:p></o:p>

        </tx:attributes><o:p></o:p>

    </tx:advice><o:p></o:p>

  <o:p></o:p>

    <aop:config><o:p></o:p>

        <aop:pointcut id="userDAOPointcut" <o:p></o:p>

             expression="execution(* onlyfun.caterpillar.IUserDAO.*(..))"/>   //前面*表示任意返回类型,后面表示onlyfun.caterpillar.IUserDAO中的所有方法。<o:p></o:p>

        <aop:advisor advice-ref="txAdvice" pointcut-ref="userDAOPointcut"/><o:p></o:p>

    </aop:config><o:p></o:p>

<o:p> </o:p>

</beans><o:p></o:p>

<!---->4.    <!---->如果采用annotion 配置文件将会更简单:<o:p></o:p>

package onlyfun.caterpillar;<o:p></o:p>

<o:p> </o:p>

import java.util.Iterator;<o:p></o:p>

import java.util.List;<o:p></o:p>

import java.util.Map;<o:p></o:p>

<o:p> </o:p>

import javax.sql.DataSource;<o:p></o:p>

分享到:
评论

相关推荐

    Spring2.0技术手册_林信良PDF

    Spring2.0技术手册_林信良PDF,非常好的学习资料

    spring2.0技术手册

    林信良著 spring2.0技术手册 《Spring 2.0技术手册》介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与...

    Spring2.0技术手册(林信良)_part2

    本书介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与Spring相关API的使用技巧,能够显著减少每一位入门者...

    spring2.0技术手册--林信良

    spring2.0技术手册--林信良,据spring1.0之后的又一力作,推荐学习。

    Spring2.0技术手册(林信良)_part1

    本书介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与Spring相关API的使用技巧,能够显著减少每一位入门者...

    spring2.0技术手册_林信良_源代码

    《spring2.0技术手册》的全部源代码。

    Spring 2.0 中文参考手册

    Spring 2.0 中文参考手册,Spring 2.0 中文参考手册,Spring 2.0 中文参考手册,Spring 2.0 中文参考手册Spring 2.0 中文参考手册,

    [spring2.0技术手册].林信良.扫描版.pdf

    Java Spring 框架学习; 预先掌握下MVC的知识再来学习这个比较好

    spring2.0技术手册 + 源代码

    spring2.0技术手册 + 源代码 林信良 ,出版时间是2007 年5月

    spring2.0技术手册(林信良)

    spring2.0技术手册(林信良).pdf 很经典!

    spring2.0技术手册 (扫描版)

    第1章认识Spring 第2章Spring入门 第3章Bean、消息、事件 第4章SpringAOP 第5章JDBC、事务支持 第6章Hibernate与Spring 第7章SpringWebMVC框架 第8章View层方案、Web框架整合 第9章API封装 第10章项目:...

    spring2.0中文手册及使用指南 chm

    spring2.0中文手册及使用指南,chm格式

    Spring2.0技术手册

    本书介绍了Spring 2.0的新特性,诸如Spring 2.0的新配置、新AOP支持、增强的IoC、JDBC和form标签等新功能。它通过实际完成一个完整的Spring项目示例,展示了与Spring相关API的使用技巧,能够显著减少每一位入门者...

    spring2.0声明式事务

    spring声明式事务的配置 3. spring2.0配置事务 a) 将spring 1.2升级到spring2.0 i. 去掉spring1.2相关的包 ii. 添加spring2.0的jar包:spring.jar,aspecjrt.jar,aspectjweaver.jar 和cglib-nodep-2.1.3,jar iii. ...

    spring2.0中文参考手册.rar

    spring2.0中文参考手册.rar spring2.0中文参考手册.rarspring2.0中文参考手册.rar

    spring2.0技术手册中文版

    全新的spring2.0技术手册中文版,让你体验no EJB的架构。

    spring 2.0中文参考手册

    spring 2.0中文参考手册 ,有spring的详细介绍包括很实用的定时程序和RMI远程调用程序。

Global site tag (gtag.js) - Google Analytics