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语句

动态标签分类

<>


事务

什么是事务

事务是包含若干个步骤的工作单元,所有步骤必须一起执行。如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务中的任何一个步骤遇到错误且必须取消或回滚,则所有数据修改均被清楚

事务的四大属性ACID
Atomici
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值