博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ibatis学习笔记
阅读量:7229 次
发布时间:2019-06-29

本文共 3236 字,大约阅读时间需要 10 分钟。

Ibatis支持.net开发。

sqlMap文件

<alias> <resultMaps> <statements>

$ #符号

Mobile like '%$mobile%' ->mobile like '%'+#mobile#+'%'

 

ApplicationContext-ibatis.xml

  1. 数据源配置dataSource
  2. sqlMapClient 关联sqlmap-config.xml和数据源dataSource
  3. dao bean配置,关联sqlMapClient

 

sqlMapClient架构

设置配置,如缓存模式(cacheModelsEnabled 缺省true),增加模式(字节码增强 enhancementEnabled 缺省false),延迟加载(lazyLoadingEnabled 缺省true),错误跟踪,最大线程数(maxRequests),最大会话数(maxSession),最大事务数(maxTransaction),使用命名空间(useStatementNamespaces 缺省false 例如:queryForObject("sqlMapName.statementName"); )。

maxRequests > maxSession,maxTransactions, 缺省512

maxSession >= maxTransactions && maxSession < maxRequest 缺省128

maxTransactions <= maxSession && maxTransaction <远远小于 maxRequest 缺省32

 

数据源配置参数说明:

Pool.MaximumActiveConnections: 数据库连接池可维持的最大容量

Pool.MaximumIdelConnections: 数据库连接池中允许的挂起(idle)连接数

SIMPLE模式:

Pool.MaximumCheckoutTime: 连接被某个任务所允许占用的最大时间。

Pool.TimeToWait: 设定线程所允许等待的最长时间

Pool.PingQuery: select 1 from t_user

Pool.PingConnectionsOlderThan: 对持续连接时间超过设定值的连接进行检测。

Pool.PingConnectionsNotUsedFor: 对空闲超过设定值的连接进行检测。

 

  1. 关联sqlMap xml文件

 

sqlMap文件

1.<typeAlias>

2.resultMap  <result />

3.parameterMap <parameter />

4.select,insert,update,delete,statement,sql

 

<dynamic> 动态SQL,分页查询。

isEmpty,isEqual,isGreaterEqual,isGreaterThan,isLessEqual,isLessThan,isNotEmpty,isNotEqual,isNotNull,isNull

</dynamic>

5.procedure调用存储过程,优点:减少sql网络传输。对业务关系复杂的sql语句的封装,sql语句以程序块的形式被封装在数据库中,写好之后,无论是java,还是.net,抑或其他开发语言,可以像使用sql语句那样随意的调用,这就是数据库开发。

 

Jdbc: CallableStatement cs  = ct.prepareCall("{call paging_pro(?)}");

cs.setString(1, "emp");

cs.registerOutParameter(2,oracle.jdbc.OracleTypes.INTEGER); //注册输出类型。

 

<parameterMap class="map" id="swap">

              <parameter property="nameStr" javaType="java.lang.String" jdbcType="varchar" mode="IN"/>

              <parameter property="returnid" javaType="java.lang.Integer" jdbcType="int" mode="OUT"/>

       </parameterMap>

       <procedure id="insertProcedure" parameterMap="swap">

              {call paging_pro(?,?)}

       </procedure>

特殊字符的处理:写在<![CDATA[    ]]>

缓存与查询

LRU: 最近最少使用算法

FIFO: 先进先出队列

LFU: 最近最不常用调度算法

OPT: 根据未来实际使用情况将未来的近期里不用的页替换出去,这种算法是用来评价期它替换算法好坏的标准,不可能实现。

 

<cacheModel type="LRU" id="ttt">

<flushInterval hours="24" />

<flushOnExecute statement="saveT" />

<flushOnExecute statement="modifyT" />

<flushOnExecute statement="deleteT" />

<property name="size" value="1000" />

</cacheModel>

<select … cacheModel="ttt">

 

sqlMapConfig.xml 中的异同.

 

iBATIS_v1

iBATIS_v2

iBATIS_v3

DOCTYPE

sql-map-config.dtd

sql-map-config-2.dtd

ibatis-3-config.dtd

configuration标签

<sql-map-config>

</sql-map-config>

<sqlMapConfig>

</sqlMapConfig>

<configuration>

</configuration>

sqlMap标签

<sql-map recource../>

<sqlMap recource../>

<mappers>

<mapper recource.. />

</mappers>

 

sqlMap 映射中的异同

 

iBATIS_v1

iBATIS_v2

iBATIS_v3

DOCTYPE

sql-map.dtd

sql-map-2.dtd

ibatis-3-mapper.dtd

sqlMap标签

<sql-map>

</sql-map>

<sqlMap>

</sqlMap>

<mapper>

</mapper>

statement标签

<mapped-statement>

</mapped-statement>

<select></select>

<update></update>

<statement></>…

<select></select>

<update></update>

 

参数表示

#id#

#id#

#{id}

 

sqlMap API的异同

 

iBATIS_v1

iBATIS_v2

iBATIS_v3

执行对象

SqlMap

SqlMapClient

SqlSession

得到执行

XMLSqlMapBuilder->

builderSqlMap

SqlMapClientBuilder->

builderSqlMap

SqlSessionFactory->

openSession

执行

excuteQueryForObject

queryForObject..

queryForList…

update…

selectOne…

selectList…

update…

 

 

转载地址:http://ugbfm.baihongyu.com/

你可能感兴趣的文章
TopN算法与排行榜
查看>>
lucene排序算法之向量空间模型(一)
查看>>
新浪微博数据Json格式解析
查看>>
WLAN 802.11 wifl区别
查看>>
oracle授权动态视图权限给用户
查看>>
Debian – 出现-bash: pip: command not found错误解决办法
查看>>
Zxing扫描二维码
查看>>
我的友情链接
查看>>
aspcms后台拿shell漏洞(非添加模块)及修复方法
查看>>
C语言冒泡排序法
查看>>
B2B行业门户网站群发邮件时间及发送频率
查看>>
关于虚拟机能ping通物理机,而物理机ping不通虚拟机问题解决。
查看>>
同台机器启动多个mysql
查看>>
iframe 跨域高度自适应
查看>>
struts2+hibernate3+spring3(ssh2)框架下的web应用
查看>>
Linux下的三个时间属性
查看>>
semanage
查看>>
[case分享]Exchange 2010 登陆OWA查看邮件出现Rights managem operation failed
查看>>
linux dd 读取 写入磁盘速度
查看>>
dmidecode查看linux硬件信息
查看>>