用iBATIS问题生成DAO

时间:2010-08-11 06:26:22

标签: sql-server-2005 ibatis dao

我在MSSQL中创建了一个具有以下结构的表 -

**Table Name - TestTable**
id (int) (Primary key)
name (varchar) 
owner (varchar)

我已为列'id'指定了Identity规范,每个新行的自动增量为1。当我为TestTable创建iBatis工件时,在DAO中生成插入函数,并带有以下签名 -

 void insert(TestTable record); 

我希望insert函数返回该行的新生成的“id”,而不是void。

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

在ibatis SqlMap文件中,添加以下内容:

<insert id="myInsertStatement">
    INSERT INTO TestTable (name, owner)
    VALUES (#name#, #owner#)
    <selectKey keyProperty="id" resultClass="int">
         SELECT SCOPE_IDENTITY()
    </selectKey>
</insert>

或者您可以将Select Scope_identity替换为另一个用于返回插入的最后一个标识列的SQL查询。 Scope_identity特定于MS SQL(根据问题的要求)。