日期:2014-05-16  浏览次数:20457 次

ibatis相关知识
Mapped statement
?
iBATIS SQL Maps 的核心概念就是 Mapped statement!Mapped Statement 可以使用任意的 SQL 语句,利用 POJO、原始变量及其 Wrapper Class 作为输入(parameter class)和输出(result class)。
?
Mapped Statement 包含以下几种类型:
?
insert 对应数据库的 insert 操作,该操作返回本次操作插入记录的主键值。
?
select 对应数据库的 select 操作,该操作返回特定的 POJO 或 对象。
?
update 对应数据库的 update 操作,该操作返回被更新的记录个数。
?
delete 对应数据库的 delete 操作,该操作返回被删除的记录个数。
?
procedure 对应数据库存储过程。
?
statement 类型最为通用,可以代替以上所有的类型。但由于缺乏操作直观性故不推荐。
存储过程,ibatis中的调用(含返回值)
?<parameterMap class="java.util.HashMap" id="initTaskParam">
? ?<parameter property="playerid" jdbcType="BIGINT" javaType="java.lang.Long" mode="IN"/>
? ?<parameter property="playerIdLimit" jdbcType="BIGINT" javaType="java.lang.Long" mode="IN"/>
? ?<parameter property="tableName" jdbcType="VARCHAR"? mode="IN"/>
? ?<parameter property="result" jdbcType="TINYINT" javaType="java.lang.Byte" mode="OUT"/>
? </parameterMap>
? <procedure id="callInitTaskProcedure" parameterMap="initTaskParam" >
? ?{call init_task(?,?,?,?)}
? </procedure>
?

1.MyBatis 还有另外一种方式为不支持自动生成主键的数据库及 JDBC 驱动来生成键值。
下面展示一个能够随机生成ID 的例子(也许您不会这么做,这仅仅是演示 MyBatis 的功
能):
<insert id="insertAuthor" parameterType="domain.blog.Author">
<selectKey keyProperty="id" resultType="int" order="BEFORE">
select CAST(RANDOM()*1000000 as INTEGER) a from SYSIBM.SYSDUMMY1
</selectKey>
insert into Author
(id, username, password, email,bio, favourite_section)
values
(#{id}, #{username}, #{password}, #{email}, #{bio},
#{favouriteSection,jdbcType=VARCHAR}
)
</insert>