﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-IT精英俱乐部-随笔分类-IBatis</title><link>http://www.blogjava.net/suplayer/category/40391.html</link><description>方便自己查阅，仅此而已！</description><language>zh-cn</language><lastBuildDate>Sun, 21 Jun 2009 11:44:50 GMT</lastBuildDate><pubDate>Sun, 21 Jun 2009 11:44:50 GMT</pubDate><ttl>60</ttl><item><title>iBATIS自动生成主键</title><link>http://www.blogjava.net/suplayer/archive/2009/06/20/283345.html</link><dc:creator>suplayer</dc:creator><author>suplayer</author><pubDate>Sat, 20 Jun 2009 05:03:00 GMT</pubDate><guid>http://www.blogjava.net/suplayer/archive/2009/06/20/283345.html</guid><wfw:comment>http://www.blogjava.net/suplayer/comments/283345.html</wfw:comment><comments>http://www.blogjava.net/suplayer/archive/2009/06/20/283345.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/suplayer/comments/commentRss/283345.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/suplayer/services/trackbacks/283345.html</trackback:ping><description><![CDATA[<p>我们在数据库插入一条数据的时候，经常是需要返回插入这条数据的主键。但是数据库供应商之间生成主键的方式都不一样。</p>
<p>&nbsp;&nbsp;&nbsp; 有些是预先生成(pre-generate)主键的，如Oracle和PostgreSQL；有些是事后生成(post-generate)主键的，如MySQL和SQL Server。但是不管是哪种方式，我们都可以用iBATIS的节点来获取语句所产生的主键。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; 例子如下：</p>
<p>xml 代码<br />
&nbsp;<br />
&lt;insert id="insertProduct-ORACLE" parameterClass="product"&gt; <br />
&nbsp; &lt;selectKey resultClass="int" type="pre" keyProperty="Id" &gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; SELECT YOURPKSEQUENCE.NEXTVAL AS VALUE FROM DUAL <br />
&nbsp; &lt;selectKey&gt; <br />
&nbsp; insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#) <br />
&lt;insert&gt; </p>
<p><br />
&lt;insert id="insertProduct-MS-SQL" parameterClass="product"&gt; <br />
&nbsp; insert into PRODUCT (PRD_DESCRIPTION) values (#description#) <br />
&nbsp; &lt;selectKey resultClass="int" type="post" keyProperty="id" &gt; <br />
&nbsp;&nbsp;&nbsp; select @@IDENTITY as value <br />
&nbsp; &lt;selectKey&gt; <br />
&lt;insert&gt; </p>
<p><br />
&lt;insert id="insertProduct-MYSQL" parameterClass="product"&gt; <br />
&nbsp; insert into PRODUCT (PRD_DESCRIPTION) values (#description#) <br />
&nbsp; &lt;selectKey resultClass="int" type="post" keyProperty="id" &gt; <br />
&nbsp;&nbsp;&nbsp; select LAST_INSERT_ID() as value <br />
&nbsp; &lt;selectKey&gt; <br />
&lt;insert&gt;</p>
<img src ="http://www.blogjava.net/suplayer/aggbug/283345.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/suplayer/" target="_blank">suplayer</a> 2009-06-20 13:03 <a href="http://www.blogjava.net/suplayer/archive/2009/06/20/283345.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>