mysql資料庫
批量操作主要使用的是mybatis的foreach,遍歷引數列表執行相應的操作,所以批量插入/更新/刪除的寫法是類似的,只是sql略有區別而已。mysql批量操作需要資料庫連線配置allowmultiqueries=true才可以。
(0)批量查詢:
selectuserdatalist(1)批量插入" parametertype="
list
" resulttype="
string
">
select userdata from tbl_hbb_user_info where mobile in
(
list
" item="
item
" index="
index
" separator="
,">#
foreach>)
select>
insert into user (name, age,dept_code) values上面演示的是mysql的寫法(表主鍵自增的寫法),因為mysql支援主鍵自增,所以直接設定usegeneratedkeys=true,即可在插入資料時自動實現主鍵自增;不需要自增時就不需要設定usegeneratedkeys,而且插入sql包含所有字段即可。實際mysql還有另外一種寫法,就是拼接values的寫法,這種方法我測試過比多條insert語句執行的效率會高些。不過需要注意一次批量操作的數量做一定的限制。具體寫法如下:(#,
#,
# )
insert into user (name, age,dept_code) values對於oracle不支援主鍵自增,需要序列替換,所以在sql寫法上略有不同,需要在insert語句前加個 ...告知mybatis主鍵如何生成(selectkey中間的內容有省略,實際是生成主鍵的sql)。(#,
#,
# )
(2)批量更新
update user set name=#,age=#(3)批量刪除where id=#
delete from user二、模糊查詢where id=#
select上面的模糊查詢語句是mysql資料庫的寫法示例,用到了mysql的字串拼接函式concat,其它資料庫使用相應的函式即可。from user
where name like concat('%',#,'%' )
三、多條件查詢
多條件查詢常用到mybatis的if判斷,這樣只有條件滿足時,才生成對應的sql。
select四、聯表查詢from user
name = #
and age = #
聯表查詢在返回結果集為多張表的資料時,可以通過繼承resultmap,簡化寫法。例如下面的示例,結果集在user表字段的基礎上新增了dept的部門名稱
selectu.*, d.name
from user u inner join dept d on u.dept_code = d.code
u.name = #
and u.age = #
update t_mm_add_stock_detail tsett.remark=#,
t.modify_time=sysdate,
t.modify_user_code=#
where t.id=#
; update t_mm_add_stock t set t.modify_time=sysdate, t.modify_user_code=#, t.remark=#, t.storage_state='待錄價'where t.id=# if>
二 mybatis和spring結合
配置 xmlns xmlns context xmlns p xmlns aop xmlns tx xmlns xsi xsi schemalocation spring beans 4.0.xsd spring context 4.0.xsd spring aop 4.0.xsd spring t...
mybatis和spring結合使用
mybatis和spring結合使用,就是通過spring建立運算元據庫的物件,而不需直接獲取mybatis中session直接操作。一 這裡使用了properties配置檔案,只要在spring的配置檔案中使用 就能在 的形式進行直接獲取數值 二 spring和mybatis進行連線,需要在spr...
mysql左右結合 結合左右加入mysql查詢
唯一可以做到的就是使用union.mysql不像mssql那樣支援full joinjust.select from tbl1 t1 left join tbl2 t2 on t1.col t2.col union select from tbl1 t1 right join tbl2 t2 on ...