最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis使用oracle進(jìn)行添加數(shù)據(jù)的方法

 更新時(shí)間:2021年04月27日 14:40:25   作者:努力的小雨  
這篇文章主要介紹了mybatis使用oracle進(jìn)行添加數(shù)據(jù)的方法,本文給大家分享我的心得體會(huì),需要的朋友可以參考下

  本次博主主要進(jìn)行oralce數(shù)據(jù)庫(kù)開發(fā),好久不用oracle,有很多知識(shí)點(diǎn)也忘的差不多了,本次主要是復(fù)習(xí)一下工作中主要使用的一些sql語(yǔ)句編寫;

查詢

查詢語(yǔ)句都是正常的,但是需要注意的是oracle數(shù)據(jù)庫(kù)在查詢的時(shí)候,表名使用別名的時(shí)候,請(qǐng)不要使用as關(guān)鍵字,只有mysql數(shù)據(jù)庫(kù)才可以使用,oracle只支持字段名別名可以使用as關(guān)鍵字。

  增加

  添加數(shù)據(jù)的時(shí)候,我們后臺(tái)很可能使用到添加后的主鍵id,此時(shí)也跟mysql不一樣,mybatis只要配置一下insert屬性就可以了,比如:

<insert id="add" keyProperty="receiptId" useGeneratedKeys="true"> 

  但是這樣不支持oracle,因?yàn)閛racle沒有自增的主鍵,只能自己依靠自己定義的自增序列來為主鍵id賦值;前提是需要知道序列名,比如:

<insert id="add">
        <selectKey  keyProperty="receiptId" resultType="long" order="BEFORE">
            select SEQ_Table.nextval from dual
        </selectKey>
        insert into SA_0511_1IS(id)values(#{receiptId})
 </insert>   

  序列是這樣創(chuàng)建的:

create sequence SEQ_Table \\序列名
increment by 1  \\步長(zhǎng)為1
start with 1 \\從1開始
maxvalue 999999999; \\最大值

  這樣我們就可以使用我們自定義的序列了

  批量增加時(shí),是不會(huì)給主鍵id賦值的,只能插入,有兩種方法:

  第一種,表中沒有主鍵id,都是其他基本信息和外部傳進(jìn)來的關(guān)聯(lián)id,

<insert id="batchAdd">
        insert all
        <foreach collection="entities" item="entity" separator="  " open=" " close=" ">
        into SA_T(
            RECEIPT_ID,GOODS_NAME,
            REG_USR_ID,REG_DT,UPDT_USR_ID,UPDT_DT
        )values
            (#{entity.receiptId},#{entity.goodsName},
            #{entity.regUsrId},#{entity.regDt},#{entity.updtUsrId},#{entity.updtDt})
        </foreach>
        select 1 from dual
    </insert>

  第二種:?jiǎn)伪硖砑訒r(shí),需要根據(jù)序列值來增加,用第一種方法是不可行的,比如:

<insert id="batchAdd">
        insert all
        <foreach collection="entities" item="entity" separator="  " open=" " close=" ">
        into SA_T(
            RECEIPT_ID,GOODS_NAME,
            REG_USR_ID,REG_DT,UPDT_USR_ID,UPDT_DT
        )values
            (SEQ_T.nextval,#{entity.goodsName},
            #{entity.regUsrId},#{entity.regDt},#{entity.updtUsrId},#{entity.updtDt})
        </foreach>
        select 1 from dual
    </insert>

  這樣之后,只會(huì)出現(xiàn)都是同一個(gè)主鍵id,而不會(huì)是逐漸增加的,所以要用下面這種方式:

<insert id="batchAdd">
        insert
            into SA_0511_1IS(RECEIPT_ID,DEALER_CODE)
 select SEQ_SA_0511_1IS.nextval,t.* from (
        <foreach collection="entities" item="entity" separator="union all">
select #{entity.dealerCode} from dual
</foreach>
        ) 

  這是正常的增加,還有一些insert into 。。select。。from這樣的從其他表直接查詢過來的,也需要注意一下,字段名一定要一樣,因?yàn)闆]有指定那些字段需要被添加,所以要都一樣

<insert id="findAndAddByVinNoList">
        insert into SA_T_LOG
        select * from SA_T
        where VIN in
        <foreach collection="entities" item="vin" separator="," open="(" close=")" >
            #{vin}
        </foreach>
    </insert>

  剩下的就是業(yè)務(wù)邏輯了,本人就不關(guān)注了。知識(shí)都是需要自己鞏固復(fù)習(xí)的,要不然會(huì)忘的一干二凈,剛接觸的時(shí)候,連序列都忘了是啥了;相當(dāng)年自己都可以在oracle中聲明對(duì)象一些騷操作也都忘了

到此這篇關(guān)于mybatis使用oracle進(jìn)行添加數(shù)據(jù)的方法的文章就介紹到這了,更多相關(guān)mybatis oracle添加數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Navicat設(shè)置Oracle數(shù)據(jù)庫(kù)主鍵自增的方法步驟

    Navicat設(shè)置Oracle數(shù)據(jù)庫(kù)主鍵自增的方法步驟

    今天工作的時(shí)候,用到了oracle數(shù)據(jù)庫(kù)建表,發(fā)現(xiàn)navicat中對(duì)于oracle的支持沒有那個(gè)主鍵自增的按鈕,下面這篇文章主要給大家介紹了關(guān)于Navicat設(shè)置Oracle數(shù)據(jù)庫(kù)主鍵自增的方法步驟,需要的朋友可以參考下
    2023-03-03
  • Oracle創(chuàng)建定時(shí)任務(wù)的方法步驟

    Oracle創(chuàng)建定時(shí)任務(wù)的方法步驟

    在日常的數(shù)據(jù)庫(kù)管理中,經(jīng)常會(huì)遇到需要定期執(zhí)行某個(gè)任務(wù)的需求,本文主要介紹了Oracle創(chuàng)建定時(shí)任務(wù)的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • oracle創(chuàng)建用戶過程詳解

    oracle創(chuàng)建用戶過程詳解

    這篇文章主要介紹了oracle創(chuàng)建用戶過程詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • ORACLE批量導(dǎo)入圖片到BLOB字段代碼示例

    ORACLE批量導(dǎo)入圖片到BLOB字段代碼示例

    這篇文章主要介紹了ORACLE批量導(dǎo)入圖片到BLOB字段代碼示例,此代碼示例是文章作者的項(xiàng)目源碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • Oracle性能究極優(yōu)化 下

    Oracle性能究極優(yōu)化 下

    Oracle性能究極優(yōu)化 下...
    2007-03-03
  • oracle丟失temp表空間的處理方法

    oracle丟失temp表空間的處理方法

    之前有做臨時(shí)表空間的切換,切換后沒drop tablespace就刪除了temp01.dbf結(jié)果排序跟查dba_temp_files報(bào)錯(cuò)
    2023-05-05
  • Oracle壓縮表空間的基本步驟

    Oracle壓縮表空間的基本步驟

    這篇文章主要介紹了Oracle怎么壓縮表空間,壓縮表空間可能需要一些時(shí)間,具體取決于表空間的大小和數(shù)據(jù)庫(kù)的負(fù)載,因此,在執(zhí)行此操作之前,請(qǐng)確保已備份數(shù)據(jù)庫(kù)以防萬(wàn)一,需要的朋友可以參考下
    2023-06-06
  • Oracle數(shù)據(jù)庫(kù)系統(tǒng)使用經(jīng)驗(yàn)六則

    Oracle數(shù)據(jù)庫(kù)系統(tǒng)使用經(jīng)驗(yàn)六則

    Oracle數(shù)據(jù)庫(kù)系統(tǒng)使用經(jīng)驗(yàn)六則...
    2007-03-03
  • oracle comment命令用法示例分享

    oracle comment命令用法示例分享

    oracle comment on命令說明及用法示例,大家參考使用吧
    2013-12-12
  • Oracle?創(chuàng)建和操作表的示例代碼

    Oracle?創(chuàng)建和操作表的示例代碼

    本節(jié)主要介紹Oracle創(chuàng)建、修改和刪除表的基本操作,對(duì)創(chuàng)建數(shù)據(jù)庫(kù)表一般有兩種方式,文中結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-12-12

最新評(píng)論

太康县| 崇州市| 洞口县| 新乐市| 瑞安市| 无棣县| 连州市| 陆河县| 田东县| 彭州市| 古丈县| 高唐县| 台前县| 通辽市| 天镇县| 龙岩市| 启东市| 正蓝旗| 天气| 河北省| 西贡区| 易门县| 邛崃市| 安义县| 关岭| 通江县| 炎陵县| 喀喇沁旗| 玉树县| 攀枝花市| 达日县| 渝中区| 克山县| 江陵县| 乌鲁木齐县| 三都| 兴山县| 历史| 从化市| 玛曲县| 札达县|