1. 程式人生 > 程式設計 >Mybatis註解方式操作Oracle資料庫詳解

Mybatis註解方式操作Oracle資料庫詳解

1.新增多行資料

@Insert({"<script>insert all " +
   "<foreach collection=\"list\" index=\"index\" item=\"item\" open=\"\" separator=\"\" close=\"\">" +
   " into s_user (user,username) values " +
   "(#{item.user},#{item.username}) " +
   "</foreach>" +
   " select 1 from dual " +
   "</script>"})

2.執行多條SQL語句

特別注意:open屬性設定為begin,close設定為;end;

@Update({"<script>" +
   "<foreach collection=\"list\" separator=\";\" item=\"item\" open=\"begin\" close=\";end;\">" +
   "update s_user set user=#{item.user},username=#{item.username} where id=#{item.id}" +
   "</foreach>" +
   "</script>"})

ORACLE中通過begin...end;來執行多行sql語句,各條sql之間用;分割

補充知識:使用mybatis註解批量插入Oracle資料庫與批量插入MySQL資料庫區別

批量插入MySQL語法

insert into table_name values (column01,column02,...), (value01,value02,...),

(value01,...);

例子:

@Select({"<script>","insert into t_sales_target (area_id,area_name,shop_id,shop_name,year) values "," <foreach collection='saleTargetList' item='item' index='index' separator=','>"," ("," #{item.areaId},"," #{item.areaName}," #{item.shopId}," #{item.shopName}," #{item.year},"
   " )"," </foreach>","</script>"
 } )

批量插入Oracle語法

insert into table_name (column01,...)
 select * from (
  select value01,... from dual
  union
  select value01,... from dual
 )

例子:

 @Insert({"<script>","insert into t_sales_date_amount (amount,sale_date,area_id) select A.* from ("," <foreach collection='salesDateAmountList' item='item' index='index' separator='UNION ALL'>"," SELECT"," #{item.salesAmount}," #{item.salesDateTime}," #{item.areaId}"," from dual"," )A","</script>"
 })

以上這篇Mybatis註解方式操作Oracle資料庫詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。