<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++博客   博問  
     
    主站蜘蛛池模板: 国产亚洲午夜精品| 中文字幕亚洲精品| 在线观看免费亚洲| 99精品国产成人a∨免费看| 黑人大战亚洲人精品一区| 五级黄18以上免费看| 亚洲第一永久AV网站久久精品男人的天堂AV | 亚洲一区二区三区在线| 免费福利视频导航| 亚洲伊人色一综合网| 亚洲精品免费网站| 亚洲成_人网站图片| 国产美女无遮挡免费视频网站 | 亚洲综合视频在线| 免费看黄视频网站| 亚洲av永久中文无码精品综合| 亚州免费一级毛片| 亚洲国产中文v高清在线观看| 美女视频黄是免费的网址| 免费在线观看黄网| 国产亚洲精品AAAA片APP| 免费在线观看亚洲| 国产黄在线播放免费观看| 亚洲一区二区女搞男| 无码人妻丰满熟妇区免费| 亚洲国产成a人v在线观看| 午夜精品在线免费观看| 免费大片av手机看片| 亚洲精品成人网站在线观看| 最近中文字幕高清免费中文字幕mv | 亚洲Av无码国产一区二区 | 亚洲电影日韩精品| 亚在线观看免费视频入口| 亚洲一级毛片中文字幕| 免费一级毛片正在播放| 99在线免费观看视频| 亚洲精品乱码久久久久久V| 亚洲性在线看高清h片| 无码精品人妻一区二区三区免费看 | 免费福利在线观看| 亚洲人成在线电影|