<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    持之以恒

    記錄本
    posts - 4, comments - 32, trackbacks - 0, articles - 74
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    關于com.ibatis.sqlmap.client.SqlMapExecutor下的insert (java.lang.String id, java.lang.Object parameterObject) 方法,ibatis的api文檔是這樣寫的解釋的:

    Java代碼
    Executes a mapped SQL INSERT statement. Insert is a bit different from other update methods, as it provides facilities for returning the primary key of the newly inserted row (rather than the effected rows). This functionality is of course optional.

    The parameter object is generally used to supply the input data for the INSERT values.

    Parameters:
    id - The name of the statement to execute.
    parameterObject - The parameter object (e.g. JavaBean, Map, XML etc.).
    Returns:
    The primary key of the newly inserted row. This might be automatically generated by the RDBMS, or selected from a sequence table or other source.
    Throws:
    java.sql.SQLException - If an error occurs.

    Executes a mapped SQL INSERT statement. Insert is a bit different from other update methods, as it provides facilities for returning the primary key of the newly inserted row (rather than the effected rows). This functionality is of course optional.

    The parameter object is generally used to supply the input data for the INSERT values.

    Parameters:
    id - The name of the statement to execute.
    parameterObject - The parameter object (e.g. JavaBean, Map, XML etc.).
    Returns:
    The primary key of the newly inserted row. This might be automatically generated by the RDBMS, or selected from a sequence table or other source.
    Throws:
    java.sql.SQLException - If an error occurs.


    它的意思是說返回值是新插入記錄的主鍵,類型為Object主要是因為主鍵類型可以是int也可以是String類型。

    然而,如果我們使用下列的配置文件進行插入的話,返回的值為null

    Xml代碼
    <insert id="insertPrdcategory" parameterClass="Prdcategory">
    insert into Prdcategory ( name,pid,deep ) values ( #name#,
    #pid#, #deep# )
    </insert>

    <insert id="insertPrdcategory" parameterClass="Prdcategory">
    insert into Prdcategory ( name,pid,deep ) values ( #name#,
    #pid#, #deep# )
    </insert>

    那我們要怎樣解決這個問題,讓它返回插入行的主鍵呢,這時我們就是使用到<selectKey>,下面僅以MSSQL數據庫為例,改寫上述配置文件,具體如下:



    Xml代碼
    <insert id="insertPrdcategory" parameterClass="Prdcategory">
    insert into Prdcategory ( name,pid,deep ) values ( #name#,
    #pid#, #deep# )
    <selectKey resultClass="int" keyProperty="id">
    select max(id) from Prdcategory
    </selectKey>
    </insert>

    <insert id="insertPrdcategory" parameterClass="Prdcategory">
    insert into Prdcategory ( name,pid,deep ) values ( #name#,
    #pid#, #deep# )
    <selectKey resultClass="int" keyProperty="id">
    select max(id) from Prdcategory
    </selectKey>
    </insert>


    DAO的實現類方法里面就應該這樣寫了(注意整型轉換用Integer類名)

    Java代碼
    public int insertPrdcategory(Prdcategory product) throws Exception {
    return (Integer)IbatisUtil.getSqlMapper().insert("insertPrdcategory", product);
    }

    public int insertPrdcategory(Prdcategory product) throws Exception {
    return (Integer)IbatisUtil.getSqlMapper().insert("insertPrdcategory", product);
    }


    這樣就算是OK了。


    小白

    評論

    # re: 關于Ibatis insert后返回值為null的解決辦法(轉)   回復  更多評論   

    2013-02-22 09:06 by 路過看看
    并發量大的時候,這正方法可以?

    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 精品福利一区二区三区免费视频 | 亚洲AV无码国产精品色| 国色精品va在线观看免费视频 | 91制片厂制作传媒免费版樱花| 久久国产成人精品国产成人亚洲| 美女羞羞免费视频网站| 国产大片线上免费看| 日韩亚洲翔田千里在线| 国产免费观看网站| 鲁啊鲁在线视频免费播放| 国产zzjjzzjj视频全免费| 黄色一级视频免费| 亚洲视频人成在线播放| 中文字幕手机在线免费看电影| 亚洲色无码一区二区三区| 免费视频一区二区| 亚洲国产美女精品久久| 拨牐拨牐x8免费| 免费人成网站永久| 亚洲中文字幕无码不卡电影| 国产白丝无码免费视频| 亚洲国产精品久久人人爱| 毛片免费全部播放一级| 男男黄GAY片免费网站WWW| 亚洲精品自在在线观看| 亚洲视频免费观看| 老子影院午夜伦不卡亚洲| 亚洲一级片免费看| 3344永久在线观看视频免费首页 | 亚洲AV色无码乱码在线观看| 亚洲精品视频在线看| 国产真人无码作爱视频免费| 亚洲成av人片不卡无码| 全免费a级毛片免费看无码| fc2成年免费共享视频网站| 亚洲欧洲日韩国产综合在线二区| 日本三级2019在线观看免费| 免费人妻精品一区二区三区| 99ri精品国产亚洲| 大胆亚洲人体视频| 最近2019免费中文字幕视频三|