`
pengchua
  • 浏览: 152672 次
  • 性别: 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

    4. **数据访问**:Spring 2.0增强了对JDBC、ORM框架(如Hibernate和iBatis)的支持,提供了声明式事务管理。书中将指导读者如何利用Spring进行数据库操作,以及如何实现事务管理。 5. **Spring与其他技术的集成**:...

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

    《Spring 2.0 技术手册》是林信良先生撰写的一本关于Spring框架深入解析的著作,这本书详尽地介绍了Spring 2.0版本的相关技术和最佳实践。书中涵盖的内容广泛,包括了IoC(Inversion of Control,控制反转)、AOP...

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

    - 提供了声明式事务管理和编程式事务管理。 - 支持AOP(面向切面编程),允许定义方法拦截器和切面,以便应用横切关注点,如安全性和事务管理。 - 引入Spring IoC(控制反转)容器,这是一个管理对象依赖关系的高级...

    spring2.0技术手册_林信良(完整版)

    《Spring 2.0 技术手册》是林信良所著的一本经典Spring框架教程,虽然相较于当前的Spring版本(如Spring Boot、Spring Framework 5.x或6.x)有些许年代感,但它仍然是初学者了解Spring核心概念的宝贵资源。尽管技术...

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

    《Spring 2.0 技术手册》是林信良撰写的一本关于Spring框架的权威指南,这本书深入探讨了Spring 2.0版本的核心特性和使用方法。Spring作为一款广泛应用于Java开发领域的轻量级框架,它极大地简化了企业级应用的开发...

    spring2.0技术手册中文版

    - **事务管理**:Spring如何支持多种类型的事务管理机制,包括编程式事务管理和声明式事务管理。 综上所述,《spring2.0技术手册中文版》是一本全面介绍Spring框架基础知识、核心特性和实际应用场景的手册。通过...

    Spring2.0技术手册

    3. **数据访问集成**:Spring 2.0提供了对多种数据访问技术的集成,包括JDBC、Hibernate、JDO和iBatis等,简化了数据库操作,并支持声明式事务管理。 4. **MVC(Model-View-Controller)框架**:Spring MVC是Spring...

    spring2.0技术手册随书光盘7

    《Spring 2.0 技术手册》是林信良先生撰写的一本深入解析Spring框架的经典著作,书中全面且深入地介绍了Spring 2.0版本的相关技术和最佳实践。随书附带的光盘资源,包括了多个章节的详细资料,便于读者更深入地理解...

    Spring 技术手册

    《Spring技术手册》是由林信良编著的一本专注于Spring框架的权威指南,主要针对Spring 2.0版本。Spring框架是Java企业级应用开发中的重要工具,它以依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-...

    spring2,spring3 相关技术文档

    此外,Spring 2.0还加强了事务管理,提供了声明式事务处理,以及对JMS、EJB等企业级服务的全面支持。 学习这两个版本的文档可以帮助开发者了解Spring框架的历史演变,理解不同版本之间的差异,从而更好地适应项目...

Global site tag (gtag.js) - Google Analytics