iBatis中得到数据库自动生成值的方法

iBatis使用SqlMapClient.insert()执行插入语句,这个方法返回一个Object,代表插入的主键值。但如果想得到这个值,必须在<insert>元素中进行另外的配置。在iBatis中文文档的20页中有提到,也可以直接搜索”selectKey”。
主键值的获取支持两种方式,前获取和后获取,如中文文档中例子写的那样。前获取需要把selectkey元素放在前面,后获取反之。


    
        SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL
    
    insert into PRODUCT (PRD_ID,PRD_DESCRIPTION)  values (#id#,#description#)



    insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
    
        SELECT @@IDENTITY AS ID
    

DB2的资料比较少,我试了很多次才搞出来,类似于SQL Server,对于使用了IDENTITY的Column:


	INSERT INTO PRODUCT  (PRD_DESCRIPTION) VALUES (#description#)
	
		SELECT distinct IDENTITY_VAL_LOCAL()  AS ID FROM PRODUCT
	

keyProperty属性必须对应于SQL语句中SELECT出来的Column Alias,在本例中均为“id”