Mybatis SQL對映檔案

2021-09-25 02:02:10 字數 2021 閱讀 3452

<?xml version="1.0" encoding="utf-8" ?>

insert into tb_employee (last_name,email,gender) values(#,#,#)

update tb_employee set

last_name=#,

email=#,

gender=#

where id=#

delete from tb_employee

where id=#

select:

id:方法名

resulttype:返回結果型別

insert:

usegeneratedkeys :使用主鍵自增,(mysql,sqlserver可用)

keyproperty:指定返回的主鍵值賦值給物件的哪個屬性

如何設定返回主鍵id

當我們插入乙個物件到資料庫中時,如何馬上獲取到它呢,根據其他欄位來獲取?,可能存在其他一樣的值;獲取最新的那條記錄?,如何同時又有插入一條記錄呢,最好是插入成功後返回其主鍵值:

在sql對映檔案中配置,即可把返回的主鍵值賦值到我們傳入的物件中:

usegeneratedkeys :使用主鍵自增,(mysql,sqlserver可用)

keyproperty:指定返回的主鍵值賦值給物件的哪個屬性

引數傳遞:

當我們在配置sql對映檔案的時候,要編寫sql語句,其中的變數使用#來代替,當遇到複雜的情況,我們如何去使用呢.?

1.單個普通型別(基本/包裝+string)

當引數只有乙個時,如上select語句,只有乙個integer型別的id,我們將變數和屬性名使用了一樣的名字來對應,其實mybatis並不會進行處理,所以此時變數名可以任意取;

2.多個引數

當引數方法中引數多於乙個時,mybatis都使用map把我們的引數重新包裝,用到map,自然想到key和value,value是我們傳入的值,那麼key呢,根據我們的習慣,想當然使用物件的屬性來命名,實驗發現是不行的,其命名方式只能使用0,1,2,3,4…或者是param1,param2,param3,param4.

select * from tb_employee where id=# and last_name=#

3.命名引數

當引數只有2,3個時使用0,1,2來命名還行,當引數多達10個時,就會記不清哪個引數是幹什麼的了,所以最好我們能使用自己的命名方式來取名:

public employee getemployeebytwo(@param("id") integer id,@param("lastname") string lastname);
在目標引數的前面使用@param來指定此引數的名字,接著在sql對映檔案中就可以使用此名字來使用了:

select * from tb_employee where id=# and last_name=#

4.pojo

當我們傳遞乙個pojo物件的時候,我們命名採用屬性來命名就可以了:

update tb_employee set

last_name=#,

email=#,

gender=#

where id=#

當我們傳入多個pojo物件呢?

和使用多個引數時一樣,要麼預設使用0,1,2,3,4 或者使用@param來自己命名,獲取此物件的某個屬性只要加點就行;

update tb_employee set

last_name=#,

email=#,

gender=#

where id=#

5.mao

Mybatis SQL對映檔案 聯合查詢

keydao.xml association實現分步查詢 getkeybyid resultmap key map select from t key where id select key map type com.czl.bean.key id column id id keyname colu...

mysql對映檔案 Mybatis SQL對映檔案

簡單查詢 insert新增 insert可以使用資料庫支援的自動生成主鍵策略,設定usegeneratedkeys true 然後把keyproperty 設成對應的列,就搞定了。比如說上面的studententity 使用auto generated 為id 列生成主鍵.還可以使用selectke...

第四章 MyBatis SQL對映檔案

mybatis 真正的強大在於對映語句,專注於sql,功能強大,sql對映的配置卻是相當簡單 sql對映檔案的幾個頂級元素 按照定義的順序 cache ref 從其他命名空間引用快取配置 resultmap 用來描述資料庫結果集和物件的對應關係 sql 可以重用的sql塊,也可以被其他語句引用 in...