打印本文 打印本文 关闭窗口 关闭窗口
iBATIS SQL Maps(二)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数5616  更新时间:2007/11/14 12:57:50  文章录入:mintao  责任编辑:mintao
是一条普通的 SQL 语句,“#name##address#”利用 Java 反射机制访问 People 对象实例的相应属性。

 

selectKey resultClass="java.lang.Integer" keyProperty="id"

iBATIS SQL Maps 通过 <insert> 元素的子元素 < selectKey> 来支持主键自动生成。 resultClass="java.lang.Integer" 定义返回对象为 int Wrapper ClasskeyProperty="id" 定义了主键名称。本例是 MySQL 主键生成方式,参考官方文档,MySQL 的主键生成无需人为来控制,也就是说可不使用 <selectKey> 而由数据库自动处理。但我测试发现,在执行 insert 操作以后,程序没有返回本次操作插入记录的主键值。在官方论坛上也有很多用户提出这样的疑惑,作者的答复是:这和 JDBC Driver 有关系。不可能把驱动一一测试吧?一劳永逸的办法是使用 <selectKey> 元素。以下是 Oracle SQL Server 主键生成方法:

 

< !- Oracle ->
<insert id="insertProduct-ORACLE" parameterClass="com.domain.Product">
  <selectKey resultClass="int" keyProperty="id" >
    SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL
  </selectKey>
  insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#)
</insert>

<!- Microsoft SQL Server ->
<insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product">
  insert into PRODUCT (PRD_DESCRIPTION) values (#descrip

上一页  [1] [2] [3] [4] [5] [6] [7]  下一页

打印本文 打印本文 关闭窗口 关闭窗口