我在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。
如何实现这一目标?
答案 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(根据问题的要求)。