ibatis项目中用到了一些基本配置,须要和spring集成,看了看这些配置大部分同hibernate中是一样的,也比較好理解。仅仅是须要他们的配置中每个类的含义,还有当中的一些细节还是须要我们了解的,知识不在多,而在不断吸收和反复,在使用和练习中加深对各种问题的理解。

读取属性文件配置

	<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:zydc.properties</value><!-- /web -->
</list>
</property>
</bean>

         这个类是一个spring工具类。是为了在配置文件里载入其它的属性文件。能够载入一个文件也能够载入多个,假设是同一时候载入多个文件在<list>标签里面多谢几个<value>值就可以,这个文件要写在配置文件開始,其它的bean配置中能够通过${key}这样的形式引用属性文件里的值。

基本数据源配置

	<!-- Apache Database Connection Pool  -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${db.driver}</value>
</property>
<property name="url">
<value>${db.url}</value>
</property>
<property name="username">
<value>${db.user}</value>
</property>
<property name="password">
<value>${db.password}</value>
</property>
</bean>

          上面配置了一个数据源。当中有一个数据库连接池,也相当于一个主要的单元,其它的配置假设有须要会引用这个配置。

<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:sql-map-config.xml</value>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="lobHandler" ref="lobHandler"/>
</bean>

         这个是ibatis特有的对象,横向比較一下,相当于hibernate中的sessionFactory对象,假设你对hibernate配置比較熟悉。那么理解这个配置也会认为easy的多。

里面主要有三个属性这个类表示sqlMapClientfactory交给spring管理。达到session共享。另一个configlocation属性,这是读取ibatis自己的配置文件,你是否还记得hibernate中也有一个hibernate.cfg.xml配置文件。这两个是相似的。

其次。须要给sqlmapclientfactory配置数据源,上面已经配置好,将他的id引用一下就可以。

最后一个属性也非常重要,表示处理一些大的对象,lob即large object,大对象能够达到2GB。

<bean id="lobHandler"class="org.springframework.jdbc.support.lob.DefaultLobHandler"/>

通过从网上查阅资料,除了Oracle9i以及更高版本号数据库。都是用这个类配置.

简单JDBC模板类

	<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>

         对照hibernate中gettemplate()方法具有异曲同工之妙。都是将操作封装了,比方保存操作,仅仅须要jdbcTemplate.insert()一个方法就完毕了,不须要一大堆别的代码。

事务管理配置

         在ibatis中事务配置是这样的思路非常清晰。首先,是为每个单一的事务,它仅仅对jdbc数据库连接起作用,也就是说它能够为每个dao层的实现服务,而不能够为服务层开启事务,例如以下

	<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="dataSource" />
</property> </bean>

          假设须要为服务层开发事务,须要配置事务代理类,例如以下

<bean id="baseTransactionProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>

           该事务代理类原理也简单。利用了拦截器机制,通过拦截请求方法调用。假设同他的事务属性中的key配置一样。它将依照自己的事务配置进行事务管理。这样的方式同hibernate中是一样的。

           到此。ibatis框架同spring集成配置就配置完了。里面也没多少内容,把这个配置文之后在配置一下sql语句文件,就能够正常开发了,以后。再用ibatis就仅仅是写写sql语句,ibatis这个框架相对于hibernate简单了非常多。学习easy,主要是对它的一些动态标签配置,使用几次后也会比較熟了。

ibatis 开发中的经验 (三)Struts+Spring+Ibatis 开发环境搭建的更多相关文章

  1. ibatis 开发中的经验 (一)ibatis 和hibernate 在开发中的理解

    这个项目的底层是用ibatis框架完毕,这几天也是都在用这个框架写代码,也有了一些简单的理解,把项目拿过来后基本的配置都已经配置好了,比方一些事务.日志控制等,在开发中主要用到的是写SQL语句以及熟悉 ...

  2. SpringData系列一 Spring Data的环境搭建

    本节作为主要讲解Spring Data的环境搭建 JPA Spring Data :致力于减少数据访问层(DAO)的开发量.开发者唯一要做的就是声明持久层的接口,其他都交给Spring Data JP ...

  3. (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功

    (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功 1.下载opencv 官网http://opencv.org/下载windows版Op ...

  4. Annotation(三)——Spring注解开发

    Spring框架的核心功能IoC(Inversion of Control),也就是通过Spring容器进行对象的管理,以及对象之间组合关系的映射.通常情况下我们会在xml配置文件中进行action, ...

  5. Spring 开发第一步(三)Spring与JDBC

    <spring in action 3rd>中的前面4章讲解的是Spring的核心,也就是DI/IOC和AOP .从第5章开始是Spring在企业开发中的各个方面的应用.其实作为笔者从事的 ...

  6. droid开发中监听器的三种实现方法(OnClickListener)

    Android开发中监听器的实现有三种方法,对于初学者来说,能够很好地理解这三种方法,将能更好地增进自己对android中监听器的理解. 一.什么是监听器. 监听器是一个存在于View类下的接口,一般 ...

  7. Vs2012在Linux开发中的应用(1):开发环境

    在Linux的开发过程中使用过多个IDE.code::blocks.eclipse.source insight.还有嵌入式厂商提供的各种IDE.如VisualDsp等,感觉总是不如vs强大好用.尽管 ...

  8. WinForm开发中通用附件管理控件设计开发参考

    1.引言 在WinForm开发中,文件附件的管理几乎在任何一个应用上都会存在,是一个非常通用集中的公共模块.我们日常记录会伴随着有图片.文档等附件形式来展现,如果为每个业务对象都做一个附件管理,或者每 ...

  9. 基于云开发开发 Web 应用(三):云开发相关数据调用

    介绍 在完成了 UI 界面的实现后,接下来可以开始进行和云开发相关的数据对接.完成数据对接后,应用基础就打好了,接下来的就是发布上线以及一些小的 feature 的加入. 配置 在进行相关的配置调用的 ...

随机推荐

  1. python的循环测试

    这段代码要实现的是:猜数字58 ,猜三次,三个判断条件和一个结束条件.判断为等于58的时候跳出循环. 首先定义一个固定变量 int 函数是更改input输入的文字类型 if guess_age == ...

  2. Highcharts使用的一些总结

    Highcharts 是一个用纯 JavaScript 编写的一个图表库, 能够很简单便捷的在 Web 网站或是 Web 应用程序添加有交互性的图表,并且免费提供给个人学习.个人网站和非商业用途使用. ...

  3. Unity5中的粒子缩放(附测试源码)

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/49363241 作者:car ...

  4. MySQL集群搭建详解

    概述 MySQL Cluster 是MySQL 适合于分布式计算环境的高实用.可拓展.高性能.高冗余版本,其研发设计的初衷就是要满足许多行业里的最严酷应用要求,这些应用中经常要求数据库运行的可靠性要达 ...

  5. Linux 网卡驱动学习(九)(层二转发)

    1.mac 地址表的自学习过程 port1上的A计算机要与port2上的B计算机通信时,A发到交换机上,交换机收到信息后,交换机先记录发port1所相应的a的mac地址并记录在自己的mac表中,然后再 ...

  6. Windows 共享无线上网 无法启动ICS服务解决方法(WIN7 ICS服务启动后停止)

    Windows 共享无线上网 无法启动ICS服务解决方法(WIN7 ICS服务启动后停止) ICS 即Internet Connection Sharing,internet连接共享,可以使局域网上其 ...

  7. android-5.1编译配置(van)

    必备文件: archives1211.tgz ubuntu_install_1204.tgz 安装指引: ubuntu_install_1204/readme.txt 工作目录结构: git ├── ...

  8. 102.tcp实现多线程连接与群聊

    协议之间的关系 socket在哪 socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP ...

  9. OpenAL音频播放

    // // OpenALPlayer.m // live // // Created by lujunjie on 2016/11/5. // Copyright © 2016年 lujunjie. ...

  10. Dcloud课程2 什么是Dcloud

    Dcloud课程2  什么是Dcloud 一.总结 一句话总结:DCloud提供了一套快速开发应用的跨平台技术方案. 1.DCloud的产品架构? MUI+(H5+)+HBuilder 2.什么是MU ...