Ibatis学习笔记

typealias  类的别名,定义别名后使用时不需要一大串包名的类全名 

resultMap    SQL字段与类属性的映射关系,避免在SQL语句中使用as转换字段别名 

parameterClass  参数类型 

resultClass  返回类型,使用resultClass不使用resultMap时就是用as让字段和属性名称一致 

包含大于号<,,,小于号>等特殊字符 

<select id="select" parameterClass="int" resultClass="Account"> 

  select 
   ACC_ID  as id, 
   ACC_FIRST_NAME as firstName, 
   ACC_LAST_NAME  as lastName, 
   ACC_EMAIL  as emailAddress 

from ACCOUNT 

   WHERE <![CDATA[ACC_ID>#id#]]> 
</select> 

SqlMapConfig标签 

<properties> 引用属性文件 

   引用属性文件,引用后用EL表达式取属性文件中的值 

<setings> 连接参数设置 


<resultObjectFactory>对象生成工厂 

默认使用内部机制class.newInstance(),所以返回的对象要求有无参的构造方法,否则报错 

<transactionManager>事务管理器 

JDBC  普通的JDBC事务管理器 
JTA   基于容器的事务管理器,企业级的容器中使用 
EXTERNAL  外部的事务管理器,管理事务的是应用程序,而不是iBATIS 

<dataSource>数据源 

SIMPLE  简单的数据源工厂,配置简单数据连接池的数据源 
DBCP    Apache的DBCP连接池 
JNDI    JNDI目录服务器,基于容器级的开发 

<sqlMap>实体映射 

resource 用于指定本地的映射文件 
url      指定远程分布式系统中的映射文件 



SqlMap标签详解 

namespace命名空间 

<typeAlias>类别名 
用别名取代包含包名的类别名。默认定义了一些常用数据类型的别名,所以使用String,Map等时就不需要全名就可以了。还定义了几个事务和数据源的一些别名。 
<!-- 定义别名,使用时就可省略包名 --> 
<typeAlias alias="Account" type="com.mydomain.domain.Account"/> 

<resultMap>返回类型显示映射关系 
<!-- SQL字段与类属性映射关系,省略在SQL语句中用AS转换字段别名--> 
<resultMap id="AccountResult" class="Account"> 
<result property="id" column="ACC_ID"/> 
<result property="firstName" column="ACC_FIRST_NAME"/> 
</resultMap> 


<parameterMap>参数类型外联映射关系 

<!-- SQL字段与类属性映射关系,在SQL语句中用?占位符就可以了--> 

<selectKey>自动生成键 
生成方式与数据库有关,MySQL,MS-SQL等先插入数据再获取主键,ORACLE等先查出序列的nextVal,再插入数据 

Oracle系列值 
<insert id="insertAccount" parameterClass="Account"> 
<selectKey resultClass="int" keyProperty="id"> 
  select sequence.nextVal from dual 
</selectKey> 
insert into ACCOUNT( 
  ACC_ID, 
  ACC_FIRST_NAME, 
  ACC_LAST_NAME, 
  ACC_EMAIL 
) values(#id#,#firstName#,#lastName#,#emailAddress#) 
</insert> 

<select>查询 

属性: 
id    指定名称 
parameterClass  参数类型,类的别名或全名 
parameterMap    传入参数的显示映射 
resultClass     返回类型,类的别名或全名 
resultMap       返回类型的显示映射 
cacheModel      缓存模式 
resultSetType   结果集类型,如游标的类型只能往前 
fetchSize       预取回指定大小的数据 
xmlResultName   当resultClass值为xml时在此指定XML文件的根标签 
remapResults    如果返回的字段不确定,将此属性设为true 
                如:select * from $table$  或select $fields$ from table 
timeout         超时 

调用: 

sqlMapper.queryForList 
sqlMapper.queryForObject 
sqlMapper.queryForMap 


<insert> 

sqlMapper.insert 


<procedure>调用存储过程 
属性: 
id       指定名称 
parameterClass   参数类型,类的别名或全名 
parameterMap     传入参数的显示映射 
resultClass      返回类型,类的别名或全名 
resultMap        返回类型的显示映射 
<!--参数映射--> 
<parameterMap id="procedureMap" class="map"> 
  <parameter property="ACC_FIRST_NAME" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/> 

<parameter property="ACC_LAST_NAME" jdbcType="VARCHAR" 
javaType="java.lang.String" mode="OUT"/> 

..... 

<!--调用存储过程--> 

<procedure id="callProcedure" parameerMap="procedureMap" resultClass="AccountResult"> 
{call procedureName(?,?,?)} 
</procedure> 

调用: 
sqlMapper.update("dropTable",null) 

<statement> 执行DDL语句 


动态SQL语句 

动态标签分类 

<> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值