MyBatis03 Mapper XML對映檔案

2021-07-28 11:40:15 字數 2566 閱讀 8417

最常用的,無可厚非,就是insert、delete、update、select,分別對應於增、刪、改、查嘛。

查詢語句是 mybatis 中最常用的元素之一,大多數的應用,查詢都比修改要繁瑣,對每個插入、更新或刪除操作,通常對應多個查詢操作。這是 mybatis 的基本原則之一,也是將焦點和努力放到查詢和結果對映的原因。

1、簡單的查詢語句:

id="selectblogbyid"

parametertype="int"

resulttype="blog">

select>

這個語句被稱作 selectblogbyid,接受乙個 int(或 integer)型別的引數,並返回乙個 blog 型別的物件,其中的鍵是列名,值便是結果行中的對應值。

使用引數的時候使用了」#」,另外還有乙個符號」$」也可以引用引數,使用」#」最重要的作用就是防止sql注入。

2、select 元素有很多屬性允許你配置,來決定每條語句的作用細節。

id="selectperson"

parametertype="int"

parametermap="deprecated"

resulttype="hashmap"

resultmap="personresultmap"

flushcache="false"

usecache="true"

timeout="10000"

fetchsize="256"

statementtype="prepared"

resultsettype="forward_only">

下面解釋一下這些屬性的作用:

insert into author (id,username,password,email,bio)

values (#,#,#,#,#)

插入語句,涉及到了乙個主鍵的問題:

如果你的資料庫支援自動生成主鍵的字段(比如 mysql 和 sql server),那麼你可以設定 usegeneratedkeys=」true」,然後再把 keyproperty 設定到目標屬性上就ok了。例如,如果上面的 author 表已經對 id 使用了自動生成的列型別,那麼語句可以修改為:

insert into author (username,password,email,bio)

values (#,#,#,#)

update author set

username = #,

password = #,

email = #,

bio = #

where id = #

delete

from author where id = #

delete>

這個元素可以被用來定義可重用的 sql **段,可以包含在其他語句中。它可以被靜態地(在載入引數) 引數化. 不同的屬性值通過包含的例項變化.。

"usercolumns"> $.id,$.username,$.password

上面這段sql片段可以被包含在其他語句中,

id="selectusers"

resulttype="map">

select

refid="usercolumns">

name="alias"

value="t1"/>

include>,

refid="usercolumns">

name="alias"

value="t2"/>

include>

from some_table t1

cross join some_table t2

select>

resultmap 元素是 mybatis 中最重要最強大的元素。它就是讓你遠離 90%的需要從結果集中取出資料的 jdbc **的那個東西, 而且在一些情形下允許你做一些 jdbc 不支援的事情。事實上, 編寫相似於對複雜語句聯合對映這些等同的**, 也許可以跨過上千行的**。 resultmap 的設計就是簡單語句不需要明確的結果對映,而很多複雜語句確實需要描述它們的關係。

補充:

resulttype和resultmap的區別:

mybatis中在查詢進行select對映的時候,返回型別可以用resulttype,也可以用resultmap,resulttype是直接表示返回型別的,而resultmap則是對外部resultmap的引用,但是resulttype跟resultmap不能同時存在。 在mybatis進行查詢對映時,其實查詢出來的每乙個屬性都是放在乙個對應的map裡面的,其中鍵是屬性名,值則是其對應的值。

(resultmap暫時先不詳細介紹,會在以後的文章中通過具體的案例進行展現其強大的功能。)

mybatis中mapper配置詳解

mybatis 的真正強大在於它的對映語句,也是它的魔力所在。由於它的異常強大,對映器的 xml 檔案就顯得相對簡單。如果拿它跟具有相同功能的 jdbc 進行對比,你會立即發現省掉了將近 95 的 mybatis 就是針對 sql 構建的,並且比普通的方法做的更好。1 select 查詢 查詢語句是...

mybatis框架Mapper配置詳解

標籤名稱 標籤作用 insert 用來對映插入語句 update 用來對映更新語句 delete 用來對映刪除語句 select 用來對映查詢語句 resultmap 用來將從資料庫結果集取出的資料對映到相應的實體物件的字段中 sql配置可以被其他語句引用的sql語句塊 cache 給定命名空間的快...

mybatis的mapper引數傳遞

簡單引數傳遞是指 actor selectactorbyid long id select id selectactorbyid resulttype canger.study.chapter04.bean.actor select actor id as id,first name as firs...