`
cloudtech
  • 浏览: 4817498 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Spring3.0和Mybatis的集成,含事务配置

 
阅读更多

[2012年3月13日12:11:57 add 如果不想CTRL+C CTRL+V只想看效果的同志请移步至http://code.google.com/p/ssm-study/]

相对于hibernate来说,比较喜欢mybatis一些。虽然mybatis没有hibernate那么成熟,但可以手动控制sql语句怎么长。废话不多说,上代码。欢迎拍砖。

Xml代码收藏代码
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <beansdefault-autowire="byType"xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  5. <beanid="propertyConfig"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  6. <propertyname="locations">
  7. <list>
  8. <value>classpath:spring-jdbc.properties</value>
  9. </list>
  10. </property>
  11. </bean>
  12. <beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  13. <propertyname="driverClassName"value="${jdbc.driver}">
  14. </property>
  15. <propertyname="url"value="${jdbc.url}">
  16. </property>
  17. <propertyname="username"value="${jdbc.username}">
  18. </property>
  19. <propertyname="password"value="${jdbc.password}">
  20. </property>
  21. </bean>
  22. <beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
  23. <propertyname="configLocation"value="classpath:SqlMapConfig.xml"></property>
  24. <propertyname="dataSource"ref="dataSource"></property>
  25. <propertyname="mapperLocations"value="classpath*:mappers-*.xml"></property>
  26. </bean>
  27. <!--由spring管理mybatis的事物-->
  28. <beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  29. <propertyname="dataSource"ref="dataSource"></property>
  30. </bean>
  31. <!--定义拦截器,用来指定事物属性,级别,和异常处理-->
  32. <beanid="transactionInterceptor"class="org.springframework.transaction.interceptor.TransactionInterceptor">
  33. <propertyname="transactionManager"ref="transactionManager"></property>
  34. <propertyname="transactionAttributes">
  35. <props>
  36. <!--PROPAGATION_SUPPORTS:如果已经存在事务,则加入事务;如果没有事务,则以非事务的方式执行;
  37. PROPAGATION_MANDATORY:使用当前事务,如果没有,则抛出异常;
  38. PROPAGATION_REQUIRED:新建事务,如果当前有事务,则挂起;P
  39. ROPAGATION_NOT_SUPPORTED:以非事务的方式执行,如果当前有事务,则挂起;
  40. PROPAGATION_NEVER:以非事务的方式执行,如果当前有事务,则抛出异常;
  41. +/-Exception</prop>+表示异常出现时事物提交-表示异常出现时事务回滚-->
  42. <propkey="find*">PROPAGATION_SUPPORTS,readOnly</prop>
  43. <propkey="del*">PROPAGATION_SUPPORTS</prop>
  44. <propkey="update*">PROPAGATION_REQUIRED</prop>
  45. <propkey="save*">PROPAGATION_REQUIRED,-Exception</prop>
  46. </props>
  47. </property>
  48. </bean>
  49. <!--用来定义那些类需要采用事物管理spring事物的动态代理类BeanNameAutoProxyCreator根据类名自动代理,接受表达式-->
  50. <beanid="BeanProxy"class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
  51. <propertyname="beanNames">
  52. <!--对类名以MybatisService结尾的类进行代理-->
  53. <value>*MybatisService</value>
  54. </property>
  55. <!--对代理类进行加载拦截器(实现通知的过程)-->
  56. <propertyname="interceptorNames">
  57. <list>
  58. <value>transactionInterceptor</value>
  59. </list>
  60. </property>
  61. </bean>
  62. </beans>

鉴于网络参数和鉴权信息是经常变的,所以单独拿出来放在属性文件中了。spring-jdbc.properties内容如下:

Java代码收藏代码
  1. jdbc.driver=oracle.jdbc.driver.OracleDriver
  2. jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
  3. jdbc.username=admin
  4. jdbc.password=pwd

Mybatis中的拦截器和一些bean的配置信息就放在SqlMapConfig.xml这个文件中了

Xml代码收藏代码
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPEconfiguration
  3. PUBLIC"-//ibatis.apache.org//DTDConfig3.0//EN"
  4. "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
  5. <configuration>
  6. <!--要在environment之前-->
  7. <typeAliases>
  8. <typeAliastype="com.jacarri.document.vo.WriteFileVo"alias="WriteFileVo"/>
  9. </typeAliases>
  10. <plugins>
  11. <plugininterceptor="com.jacarri.common.filter.PaginationInterceptor"/>
  12. <plugininterceptor="com.jacarri.common.filter.ColumnsControlInterceptor"/>
  13. </plugins>
  14. </configuration>

备注:两个interceptor,第一个是用来分页的,第二个是用来控制select语句中列名的,就不上代码了。想要的可以给我发消息。至于WriteFileVo就是一个普通的bean,如果你要用到缓存,记得bean要实现java.io.Serializable。

同时附上jar包清单(该清单是在搭建struts2+Spring3+Mybatis框架时用到的清单)

Java代码收藏代码
  1. antlr-2.7.6.jar
  2. aopalliance.jar
  3. asm-2.2.3.jar
  4. asm-commons-2.2.3.jar
  5. backport-util-concurrent-3.1.jar
  6. cglib-nodep-2.1_3.jar
  7. commons-collections-3.1.jar
  8. commons-dbcp-1.2.1.jar
  9. commons-fileupload-1.2.1.jar
  10. commons-io-1.3.2.jar
  11. commons-lang-2.3.jar
  12. commons-logging-1.1.1.jar
  13. commons-pool-1.2.jar
  14. dom4j-1.6.1.jar
  15. ehcache-1.5.0.jar
  16. freemarker-2.3.15.jar
  17. jakarta-oro-2.0.8.jar
  18. javassist-3.12.0.GA.jar
  19. json-lib-2.1-jdk15.jar
  20. jta.jar
  21. log4j-1.2.16.jar
  22. mybatis-3.0.6-SNAPSHOT.jar
  23. mybatis-spring-1.0.2-SNAPSHOT.jar
  24. mysql-connector-java-5.1.17-bin.jar
  25. ognl-2.7.3.jar
  26. org.springframework.aop-3.1.0.M2.jar
  27. org.springframework.asm-3.1.0.M2.jar
  28. org.springframework.beans-3.1.0.M2.jar
  29. org.springframework.context-3.1.0.M2.jar
  30. org.springframework.core-3.1.0.M2.jar
  31. org.springframework.expression-3.1.0.M2.jar
  32. org.springframework.jdbc-3.1.0.M2.jar
  33. org.springframework.orm-3.1.0.M2.jar
  34. org.springframework.transaction-3.1.0.M2.jar
  35. org.springframework.web-3.1.0.M2.jar
  36. struts2-config-browser-plugin-2.2.1.jar
  37. struts2-convention-plugin-2.2.1.jar
  38. struts2-core-2.2.1.jar
  39. struts2-json-plugin-2.2.1.jar
  40. struts2-spring-plugin-2.2.1.jar
  41. xwork-core-2.2.1.jar

SVN地址 http://myfirst-cmcc.googlecode.com/svn/demo/ssm

分享到:
评论

相关推荐

    Spring3.0+myBatis3.0

    通过对这些文件的分析和学习,开发者可以深入了解Spring3.0与myBatis3.0的整合过程和具体实践。 总结,Spring3.0与myBatis3.0的整合,既发挥了Spring的高级特性,也利用了myBatis的灵活性,使得在处理数据访问时,...

    spring3.0 + mybatis源码

    当 Spring 3.0 与 MyBatis 结合使用时,通常会使用 Spring 的 DataSource、TransactionManager 和 SqlSessionFactoryBean 来管理数据源、事务以及 MyBatis 的会话工厂。这样可以实现数据库操作的事务管理,并且与 ...

    spring3.0 mybatis commons jar包

    5. **事务管理**:MyBatis可以与Spring框架无缝集成,提供事务控制。 **Spring与MyBatis整合** Spring 3.0与MyBatis的整合是常见的数据访问架构,主要步骤包括: 1. **添加依赖**:在项目中引入Spring和MyBatis的...

    Spring3.0+mybatis3.0环境搭建

    此包解决了Spring3.0不直接支持MyBatis3.0的问题,提供了如SqlSessionFactoryBean、MapperFactoryBean等类,简化了MyBatis与Spring的集成。 **4. 数据源支持** Commons-dbcp和Commons-pool是Spring数据源支持的...

    Struts2+Spring3.0+MyBatis3.0平台搭建spring+json+gson+mysql,经典版本spring3.0+,完整架包

    此外,Spring3.0还集成了对其他技术的支持,如数据访问(JDBC、Hibernate、MyBatis)、Web应用(Spring MVC)、消息处理(JMS)等。 MyBatis3.0是一个轻量级的持久层框架,它将SQL语句与Java代码分离,使得开发者...

    Struts2+Spring3.0+MyBatis3.0

    在"Spring3.0和MyBatis3.0的集成"中,通常会使用Spring的DataSourceTransactionManager来管理事务,通过SqlSessionFactoryBean配置MyBatis的SqlSessionFactory,并通过MapperScannerConfigurer扫描Mapper接口,将...

    springMVC_spring3.0_mybatis2.1.1整合

    标题“springMVC_spring3.0_mybatis2.1.1整合”指的是将Spring MVC、Spring 3.0框架和MyBatis 2.1.1数据访问层进行集成的教程或项目示例。这个整合是Web开发中常见的技术栈组合,用于构建高效、灵活的Java Web应用。...

    spring3.0整合mybatis3.0、struts2

    本项目“spring3.0整合mybatis3.0、struts2”正是这样的一个尝试,旨在利用这三个主流的Java技术栈来搭建一个强大的后端架构。接下来,我们将详细探讨这三个框架各自的功能、整合的意义以及如何进行整合。 **Spring...

    struts2.0+spring3.0+mybatis3框架整合

    Struts2.0、Spring3.0和MyBatis3是Java Web开发中常见的三大框架,它们各自在应用程序的不同层次上发挥着重要作用。Struts2作为MVC(模型-视图-控制器)框架,主要负责处理请求和控制业务流程;Spring则是一个全面的...

    spring3.0 mvc+mybatis3.0

    标题 "spring3.0 mvc+mybatis3.0" 提到的是一个集成Spring MVC 3.0和MyBatis 3.0的项目实例,这两大框架在Java Web开发中占据重要地位。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序的前端控制器,而...

    Myeclipse10搭建Flex4.6+spring3.0+mybatis3.2架构

    总结,这个例子展示了如何在Myeclipse10环境中集成Flex4.6、Spring3.0和(潜在的)Mybatis3.2,构建一个能够进行远程调用、处理数据和展示结果的完整应用程序。这样的架构是现代企业级应用的常见模式,能够充分利用...

    spring mvc 3.0-mybatis-freemarker整合

    在与Spring MVC集成时,MyBatis可以作为数据访问层,通过Spring的依赖注入机制,实现事务管理和数据库操作。 **Freemarker 2.3** Freemarker是一个开源的模板引擎,主要用于生成HTML或其他文本格式的输出。它允许...

    Struts2+Spring3+MyBatis框架整合源码+pdf整合文档

    在Spring中,MyBatis可以通过Spring的SqlSessionFactoryBean来配置,实现数据访问的事务管理和资源管理。 SSM整合的主要步骤包括: 1. **引入依赖**:在项目中添加Struts2、Spring3和MyBatis的相关jar包,以及它们...

    spring3.0+spring mvc3.0+mybaits3.0

    5. **与Spring的无缝集成**: 可以通过Spring的DataSource和TransactionManager配置,实现MyBatis的事务管理。 **整合过程** 整合Spring 3.0、Spring MVC 3.0和MyBatis 3.0,主要涉及以下步骤: 1. **配置Spring ...

    Spring3.0 chmAPI 和 Spring3.0所有jar 和 Spring3.0源码

    API文档还涵盖了Spring对其他技术如JDBC、Hibernate、MyBatis等的集成支持,有助于开发者快速理解和使用Spring3.0的各种组件。 **所有依赖的jar包** 这些jar包包含了Spring3.0运行所需的所有依赖,包括Spring的核心...

    Spring3.0中文帮助文档

    9. **测试支持**:Spring Test模块提供了对Spring应用程序的全面测试支持,包括单元测试和集成测试,可以方便地模拟IoC容器,测试Spring配置和组件。 10. **RESTful支持**:Spring 3.0引入了RestTemplate,使得开发...

    Spring3.0Jar包

    7. **数据访问增强**:Spring 3.0 对数据访问层进行了大量改进,包括对 JPA、Hibernate 和 MyBatis 等 ORM 框架的支持,以及对 NoSQL 数据库的集成,如 MongoDB。 8. **RESTful 支持**:通过 `@RequestMapping` ...

    Spring3.0中文版

    6. **数据访问**:Spring3.0对JDBC、Hibernate、MyBatis等持久层技术提供了更全面的支持,简化了数据库操作,如声明式事务管理。 7. **集成测试**:Spring Test模块提供了测试上下文的支持,使得单元测试和集成测试...

    spring3.0+ibatis 集成实例

    Spring 3.0 和 iBatis 的集成是一个常见的企业级应用开发模式,它结合了Spring的强大依赖注入(DI)和面向切面编程(AOP)能力与iBatis灵活的SQL映射机制,实现了业务逻辑层与数据访问层的分离,提高了代码的可维护...

    spring3.0jar包集合

    Spring 3.0提供了对多种数据访问技术的集成,包括JDBC、Hibernate、MyBatis等ORM框架,使得数据库操作更加简单和灵活。此外,Spring的事务管理功能可以在不同数据访问技术之间提供一致的事务策略。 5. **批注驱动...

Global site tag (gtag.js) - Google Analytics