<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 路過看看
    并發量大的時候,這正方法可以?

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


    網站導航:
     
    主站蜘蛛池模板: 日韩激情淫片免费看| 久久天天躁狠狠躁夜夜免费观看| 国产美女做a免费视频软件| 久久精品国产亚洲αv忘忧草| 精品无码国产污污污免费网站 | 亚洲电影免费观看| 57pao国产成视频免费播放 | 夫妻免费无码V看片| 国产 亚洲 中文在线 字幕| 特级做A爰片毛片免费69| 亚洲大成色www永久网址| 成在人线AV无码免费| 成人婷婷网色偷偷亚洲男人的天堂| 国产青草视频在线观看免费影院| 亚洲jizzjizz少妇| 国产亚洲精品影视在线产品| aa级毛片毛片免费观看久| 久久夜色精品国产嚕嚕亚洲av| 99久热只有精品视频免费看 | 深夜福利在线视频免费| 亚洲色WWW成人永久网址| 亚洲午夜免费视频| 亚洲中文字幕无码一去台湾| 日韩免费福利视频| 99免费在线视频| 亚洲男人的天堂在线| 四虎免费永久在线播放| 特级做A爰片毛片免费看无码| 亚洲午夜免费视频| 青青青国产免费一夜七次郎| 国产成人自产拍免费视频| 亚洲视频在线观看网站| 色吊丝最新永久免费观看网站| 国产免费伦精品一区二区三区| 亚洲宅男永久在线| 日本19禁啪啪无遮挡免费动图| A毛片毛片看免费| 亚洲六月丁香婷婷综合| 国内精品99亚洲免费高清| 一本岛高清v不卡免费一三区| 污网站在线观看免费|