没有合适的资源?快使用搜索试试~ 我知道了~
首页IBatis学习笔记以及使用心得
IBatis学习笔记以及使用心得
需积分: 9 12 下载量 186 浏览量
更新于2023-03-16
评论
收藏 714KB DOC 举报
IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得IBatis学习笔记以及使用心得
资源详情
资源评论
资源推荐
如上图所示,在左侧是方法可以输入的参数,右侧是调用的方法是输出的参数类型,中间
部分是配置文件,看的出,这是 IBatis 的核心部分,这里面定义的部分需要根据前台传来
的数据来定义,但是这一部分可以决定反回的值是什么类型,并且在这里面还包含了极多
的内容,特别是在配置文件的写法。
使 用 之 初 必 须 要 在 工 程 当 中 引 入 需 要 的 包 : iBatis-common.jar,iBatis-dao.jar,iBatis-
sqlMap.jar,commons-logging-1.0.1.jar 以及一些其他可能用到的 jar 包。
直奔正题也是最主要的配置文件部分。
SqlMap 的配置.
SqlMapConfig.xml
先从例子入手。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<!-- Always ensure to use the correct XML header as above! -->
<sqlMapConfig>
<!-- The properties (name=value) in the file specified here can be used placeholders in this config file
(e.g. “${driver}”. The file is relative to the classpath and is completely optional. -->
<properties resource=" examples/sqlmap/maps/SqlMapConfigExample.properties " />
<!-- These settings control SqlMapClient configuration details, primarily to do with transaction
management. They are all optional (more detail later in this document). -->
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>
<!-- Type aliases allow you to use a shorter name for long fully qualified class names. -->
<typeAlias alias="order" type="testdomain.Order"/>
<!-- Configure a datasource to use with this SQL Map using SimpleDataSource.
Notice the use of the properties from the above resource -->
<transactionManager type="JDBC" >
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${driver}"/>
<property name="JDBC.ConnectionURL" value="${url}"/>
<property name="JDBC.Username" value="${username}"/>
<property name="JDBC.Password" value="${password}"/>
<property name="JDBC.DefaultAutoCommit" value="true" />
<property name="Pool.MaximumActiveConnections" value="10"/>
<property name="Pool.MaximumIdleConnections" value="5"/>
<property name="Pool.MaximumCheckoutTime" value="120000"/>
<property name="Pool.TimeToWait" value="500"/>
<property name="Pool.PingQuery" value="select 1 from ACCOUNT"/>
<property name="Pool.PingEnabled" value="false"/>
<property name="Pool.PingConnectionsOlderThan" value="1"/>
<property name="Pool.PingConnectionsNotUsedFor" value="1"/>
</dataSource>
</transactionManager>
<!-- Identify all SQL Map XML files to be loaded by this SQL map. Notice the paths
are relative to the classpath. For now, we only have one… -->
<sqlMap resource="examples/sqlmap/maps/Person.xml" />
</sqlMapConfig>
<properties>元素
在配置文件中<properties>是唯一的,SQL Map 配置文件拥有唯一的<properties>元素,
用于在配置文件中使用标准的 Java 属性文件(name=value)。这样做后,在属性文件中
定义的属性可以作为变量在 SQL Map 配置文件及其包含的所有 SQL Map 映射文件中引用。
例如,如果属性文件中包含属性:
driver=org.hsqldb.jdbcDriver
SQL Map 配置文件及其每个映射文件都可以使用占位符${driver}来代表值
org.hsqldb.jdbcDriver。例如:
<property name="JDBC.Driver" value="${driver}"/>
属性文件可以从类路径中加载(使用resource熟悉),也可以从合法的URL中加载(使
用url属性)。例如,要加载固定路径的属性文件,使用:
<properties url=”file:///c:/config/my.properties” />
<settings>元素
<setting>元素用于配置和优化SqlMapClient实例的各选项。<setting>元素本身及其所
有的属性都是可选的。具体设置如下:
maxRequests
同时执行SQL语句的最大线程数。大于这个值的线程将阻
塞直到另一个线程执行完成。不同的 DBMS有不同的限制
值,但任何数据库都有这些限制。通常这个值应该至少是
maxTransactions ( 参 见 以 下 ) 的 10 倍 , 并 且 总 是 大 于
maxSessions和maxTranactions。减小这个参数值通常能提高
性能。
例如:maxRequests=“256”缺省值:512
maxSessions
同一时间内活动的最大session数。一个session可以是代码请
求的显式session,也可以是当线程使用SqlMapClient实例
(即执行一条语句)自动获得的session。它应该总是大于
或等于maxTransactions并小于maxRequests。减小这个参数
值通常能减少内存使用。
例如:maxSessions=“64”
缺省值:128
maxTransactions
同时进入SqlMapClient.startTransaction()的最大线程数。大
于这个值的线程将阻塞直到另一个线程退出。不同的DBMS
有不同的限制值,但任何数据库都有这些限制。这个参数
值 应 该 总 是 小 于 或 等 于 maxSessions 并 总 是 远 远 小 于
maxRequests。减小这个参数值通常能提高性能。
例如:maxTransactions=“16”
缺省值:32
cacheModelsEnabled
全局性地启用或禁用SqlMapClient的所有缓存model。调试
程序时使用。
例如:cacheModelsEnabled=“true”
缺省值:true(启用)
lazyLoadingEnabled
全局性地启用或禁用SqlMapClient的所有延迟加载。调试程
序时使用。
例子:lazyLoadingEnabled=“true”
缺省值:true(启用)
enhancementEnabled
全局性地启用或禁用运行时字节码增强,以优化访问 Java
Bean属性的性能,同时优化延迟加载的性能。
例子:enhancementEnabled=“true”
缺省值:false(禁用)
useStatementNamespaces
如 果 启 用 本 属 性 , 必 须 使 用 全 限 定 名 来 引 用 mapped
statement。Mapped statement的全限定名由sql-map的名称和
mapped-statement的名称合成。例如:
queryForObject(“sqlMapName.statementName”);
例如:useStatementNamespaces=“false”
缺省值:false(禁用)
<typeAlias>元素
<typeAlias>元素让您为一个通常较长的、全限定类名指定一个较短的别名。
例如:<typeAlias alias="shortname" type="com.long.class.path.Class"/>
在SQL Map配置文件预定义了几个别名。它们是:
事务管理器别名
JDBC
JTA
EXTERNAL
com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransactionConfig
com.ibatis.sqlmap.engine.transaction.jta.JtaTransactionConfig
com.ibatis.sqlmap.engine.transaction.external.ExternalTransactionConfi
g
Data Source Factory别名
SIMPLE
DBCP
JNDI
com.ibatis.sqlmap.engine.datasource.SimpleDataSourceFactory
com.ibatis.sqlmap.engine.datasource.DbcpDataSourceFactory
com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory
这些是不用自己再写的,拿来即可使用。
<transactionManager>元素
2.0 版本只允许一个数据源。要使用多个部署/配置参数,您最好使用多个属性文件,不同
的系统使用不同的属性文件,或在创建 SQL Map 时传入不同的属性文件.
元素让您为SQL Map配置事务管理服务。属性type指定所使用的事务管理器类型。这
个属性值可以是一个类名,也可以是一个别名。包含在框架的三个事务管理器分别是:
JDBC,JTA和EXTERNAL。
JDBC:通过常用的Connection commit()和rollback()方法,让JDBC管理事务。
JTA:本事务管理器使用一个JTA全局事务,使SQL Map的事务包括在更大的事务范
围内,这个更大的事务范围可能包括了其他的数据库和事务资源。这个配置需要一个
UserTransaction属性,以便从JNDI获得一个UserTransaction。参见以下JNDI数据源的例子。
EXTERNAL:这个配置可以让您自己管理事务。您仍然可以配置一个数
据源,但事务不再作为框架生命周期的一部分被提交或回退。这意味着SQL
Map外部应用的一部分必须自己管理事务。这个配置也可以用于没有事务管理
的数据库(例如只读数据库)
<datasource>元素
<datasource>是<transactionManager>的一部分,为SQL Map数据源设置了一系列参数。
目前SQL Map架构只提供三个DataSource Factory,
SimpleDataSourceFactory
SimpleDataSourceFactory为DataSource提供了一个基本的实现,适用于在没有J2EE容器
提供DataSource的情况。它基于iBatis的SimpleDataSource连接池实现。
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
DbcpDataSourceFactory
DbcpDataSourceFactory 实 现 使 用 Jakarta DBCP ( Database Connection Pool ) 的
DataSource API提供连接池服务。适用于应用/Web容器不提供DataSource服务的情况,或执
行一个单独的应用。DbcpDataSourc
eFactory中必须要配置的参数例子如下:
<transactionManager type="JDBC">
<dataSource type="DBCP">
剩余22页未读,继续阅读
atgmcbj
- 粉丝: 8
- 资源: 34
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2022年中国足球球迷营销价值报告.pdf
- 房地产培训 -营销总每天在干嘛.pptx
- 黄色简约实用介绍_汇报PPT模板.pptx
- 嵌入式系统原理及应用:第三章 ARM编程简介_3.pdf
- 多媒体应用系统.pptx
- 黄灰配色简约设计精美大气商务汇报PPT模板.pptx
- 用matlab绘制差分方程Z变换-反变换-zplane-residuez-tf2zp-zp2tf-tf2sos-sos2tf-幅相频谱等等.docx
- 网络营销策略-网络营销团队的建立.docx
- 电子商务示范企业申请报告.doc
- 淡雅灰低面风背景完整框架创业商业计划书PPT模板.pptx
- 计算模型与算法技术:10-Iterative Improvement.ppt
- 计算模型与算法技术:9-Greedy Technique.ppt
- 计算模型与算法技术:6-Transform-and-Conquer.ppt
- 云服务安全风险分析研究.pdf
- 软件工程笔记(完整版).doc
- 电子商务网项目实例规划书.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0