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

分享到:
评论

相关推荐

    基于SpringBoot的考试信息报名系统(源码+数据库+万字文档)

    448考试信息报名系统,系统包含三种角色:管理员、用户,教师,系统分为前台和后台两大模块,主要功能如下。 【前台功能】 1. 首页:提供用户进入系统的入口。 2. 考试信息:用户可以查看当前和将来的考试信息。 3. 新闻资讯:发布与考试相关的新闻、通知和资讯。 4. 后台管理:提供管理员、教师、学生进入后台管理的入口。 5. 个人中心:用户可以管理个人信息。 【后台功能】 1. 系统首页:提供管理员、教师、学生进入后台管理的入口。 2. 个人中心:管理员、教师、学生均可以管理个人信息 3. 管理员管理:添加、编辑、删除系统管理员账号。 4. 学生管理:添加、编辑、删除学生账号。 5. 教师管理:添加、编辑、删除教师账号。 6. 考试报名管理:教师和学生均可以进行考试报名。 7. 考试信息管理:管理员和教师可以添加、编辑、删除考试信息。 8. 准考证管理:管理员和教师可以生成、查看、管理准考证信息。 9. 考试成绩管理:教师可以录入、修改学生的考试成绩。 10. 系统管理:管理员可以进行系统的基本设置。

    基于快速探索随机树RRT和Dubins路径规划与避障研究附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。

    IslandPlannerWindows.zip

    IslandPlannerWindows.zip

    YAMAHA RCX240-使用说明

    YAMAHA RCX240_使用说明

    (源码)基于Raspberry Pi的FM发射器项目.zip

    # 基于Raspberry Pi的FM发射器项目 ## 项目简介 本项目是一个基于Raspberry Pi的FM发射器,可以将音频信号转换为FM信号并通过无线电波发送出去。该项目适用于各种Raspberry Pi开发板,使用一般的时钟输出产生调频广播通信。 ## 项目的主要特性和功能 1. FM发射器功能使用Raspberry Pi作为FM发射器,将音频转换为FM信号并广播。 2. 频率选择支持多种频率选择,用户可以根据需要设置广播频率。 3. 音频输入提供灵活的音频输入选项,包括WAV文件、实时麦克风输入等。 4. DMA支持支持DMA(直接内存访问)和CPU传输方式,提高数据传输效率。 5. 异常处理包含异常处理和中断处理机制,保证程序的稳定性和健壮性。 6. 命令行配置提供简洁的命令行参数配置,方便用户操作。 ## 安装使用步骤 1. 复制项目 bash cd fmtransmitter 2. 构建项目

    Kotlin实战项目:构建跨平台的HTTP缓存客户端,展示协程、缓存与多平台适配

    内容概要:本文介绍了一个小型Kotlin实战项目,旨在展示Kotlin在构建跨平台HTTP客户端方面的优势,特别关注了缓存机制的实现。文章从选择适合的主题出发,详细介绍了项目的结构设计,涵盖HTTP请求执行、缓存策略(如永久缓存和时间缓存),并探讨了如何利用协程处理异步任务。此外,还涉及了跨平台适配的技术实现。为了确保内容的质量和技术深度,作者提供了多个详细的代码片段,并进行了性能对比实验。通过对一个带缓存机制的HTTP客户端的实际操作,证明了Kotlin在这方面的优越性。 适合人群:具备一定编程经验和对Kotlin有一定了解的研发人员或学生,尤其是希望深入了解Kotlin特性和提高代码质量的Android和全栈开发者。 使用场景及目标:本文主要面向想了解Kotlin如何解决网络请求和数据缓存挑战的人群。通过具体案例分析和实际代码,展示了Kotlin的高效特性和强大的多平台开发能力,从而达到让读者能够快速上手并应用于实际项目的目标。 其他说明:本文不仅限于理论介绍,更重要的是通过真实项目来引导读者理解每一处设计决策背后的原因,比如为何选用某些特定技术栈或库,在实践中体会Kotlin所带

    (源码)基于Android的“喵的响亮”音乐播放器.zip

    # 基于Android的“喵的响亮”音乐播放器 ## 项目简介 “喵的响亮”音乐播放器是一款基于Android平台的音乐播放应用,专为大四毕业设计而开发。该应用提供了丰富的音乐播放功能,包括播放、暂停、下一首上一首切换、音乐信息展示等。此外,应用还集成了用户登录、注册、音乐上传、审核、点赞、收藏等功能,为用户提供了一个完整的音乐管理体验。 ## 项目的主要特性和功能 ### 核心功能 1. 音乐播放支持音乐的播放、暂停、下一首上一首切换,并提供播放进度控制。 2. 用户管理用户可以注册、登录、修改密码、设置密保问题等。 3. 音乐管理用户可以上传音乐、审核音乐、点赞、收藏音乐。 4. 界面交互提供直观的用户界面,支持点击、滑动等交互操作。 5. 数据存储使用本地数据库和SharedPreferences存储用户信息和音乐数据。 ### 技术特性 1. 依赖注入使用Dagger框架进行依赖注入,提高代码的可维护性和可测试性。

    台达温度控制器教材PDF档

    台达温度控制器教材PDF档

    IMG_20250322_124630.jpg

    IMG_20250322_124630.jpg

    数据分析案例-健身房会员锻炼数据集可视化分析(数据集+代码).rar

    数据分析案例-健身房会员锻炼数据集可视化分析(数据集+代码).rar

    HTML教程html教程下载-HTML基础教程PDF

    什么是HTML文件? HTML的英文全称是Hypertext Marked Language,中文叫做“超文本标记语言"。和一般文本的不同的是,一个HTML文件不仅包含文本内容,还包含一些Tag,中文称“标记"。 一个HTML文件的后缀名是.htm 或者是.html.用文本编辑器就可以编写HTML文件。

    QtQPainter使用方法程序示例

    QtQPainter使用方法程序示例

    通过吸收接收器扩散在分子通讯中缓解ISI的模拟器附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。

    基于深度学习的车牌识别源码(高分毕设项目)

    基于深度学习的车牌识别源码(高分毕设项目),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学习的车牌识别源码(高分毕设项目)基于深度学

    G6-JavaScript资源

    G6

    javascript项目完整代码-扑克牌计分器微信小程序

    javascript项目完整代码-扑克牌计分器微信小程序

    LaTeX轻量发行版TinyTeX的多平台安装及应用教程

    内容概要:本文详细介绍了LaTeX的一种轻量级发行版TinyTeX的下载和使用教程。TinyTeX旨在减小体积以减少不必要的冗余文件,并支持多种操作系统的高效安装方法。特别强调了在Mac环境下借助R语言包进行的安装流程,并讲解了创建和使用TinyTeX-Docker镜像的方法,还展示了英文和中文LaTeX模板的实际应用测试。此外,文中还提供了遇到的问题及其解决方案,以确保用户能够顺利地进行LaTeX文档编辑及自动化报告生产。 适用人群:熟悉R编程或者正在研究生物信息学相关领域的科研工作者,或是任何有志于掌握更高效的文献写作工具的学习者。 使用场景及目标:帮助用户在不同的计算环境中快速部署稳定的LaTeX环境;实现高质量科研文章排版及复杂项目文档的批量生产;辅助自动化实验数据处理与结果汇报。 其他说明:文中提供的技巧不仅局限于TinyTeX本身的使用指导,同时也适用于其他依赖LaTeX的开源软件栈,比如Knitr用于集成统计计算结果到PDF文件中。同时,在实际案例部分提供了一个简单易行的方式来进行环境验证。

    (源码)基于Java和NanoHTTPD框架的NewBingGoGoweb.zip

    # 基于Java和NanoHTTPD框架的NewBingGoGoweb ## 项目简介 NewBingGoGoweb是一个基于微软OpenAI ChatGPT GPT4的Web服务,提供了一个美观的对话页面,并实现了微软New Bing的大多数功能,还添加了一些特色功能。该项目是开源的,可以免费使用。 ## 功能特性 1. 直接访问用户可以直接通过网页访问服务,需要在配置文件中设置共享账号,支持多个共享账号随机访问。 2. 魔法链接服务可以作为魔法链接使用,用户无需登录即可使用,且不会使用配置文件中的共享账号。 3. 插件版提供更强大的浏览器插件版,支持登录用户自己的微软账号,速度更快,更稳定。 ## 安装使用步骤 2. 配置参数根据项目需求配置相关参数,如共享账号信息等。 3. 启动服务运行ServerRunner类或相应的启动脚本,启动服务器。 4. 访问服务通过浏览器访问指定的URL,即可使用NewBingGoGoweb服务。

    远程代码执行漏洞是一种严重的安全漏洞,它允许攻击者在目标系统上执行任意代码

    远程代码执行

    基于Proteus的单片机实时时钟仿真设计资料

    基于Proteus的单片机实时时钟仿真设计资料,包含设计方案和设计思路。

Global site tag (gtag.js) - Google Analytics