MyBatis 真正的力量是在映射語(yǔ)句中,SQL 映射文件有以下幾個(gè)頂級(jí)元素.
成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括蘭考網(wǎng)站建設(shè)、蘭考網(wǎng)站制作、蘭考網(wǎng)頁(yè)制作以及蘭考網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,蘭考網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到蘭考省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
查詢語(yǔ)句是使用 MyBatis 時(shí)最常用的元素之一,對(duì)于每次插入,更新或刪除,那也會(huì)有很多的查詢。這是 MyBatis 的一個(gè)基本原則,也是將重心和努力放到查詢和結(jié)果映射的原因。對(duì)簡(jiǎn)單類別的查詢?cè)厥欠浅:?jiǎn)單的。
比如:
這個(gè)語(yǔ)句被稱作 selectPerson,使用一個(gè) int(或 Integer)類型的參數(shù),并返回一個(gè) HashMap類型的對(duì)象,其中的鍵是列名,值是列對(duì)應(yīng)的值。
這就告訴 MyBatis 創(chuàng)建一個(gè) PreparedStatement(預(yù)處理語(yǔ)句)參數(shù)。使用JDBC,這樣的一個(gè)參數(shù)在 SQL 中會(huì)由一個(gè)“?”來(lái)標(biāo)識(shí),并被傳遞到一個(gè)新的預(yù)處理語(yǔ)句中,就像這樣:
// 相似的JDBC代碼,不是MyBatis的
String selectPerson = “SELECT * FROM PERSON WHERE ID=?”;
PreparedStatement ps = conn.prepareStatement(selectPerson);
ps.setInt(1,id);
當(dāng)然,這需要很多單獨(dú)的 JDBC 的代碼來(lái)提取結(jié)果并將它們映射到對(duì)象實(shí)例中,這就是MyBatis 節(jié)省你時(shí)間的地方。我們需要深入了解參數(shù)和結(jié)果映射.
select 元素有很多屬性允許你配置,來(lái)決定每條語(yǔ)句的作用細(xì)節(jié)。
如下內(nèi)容為各個(gè)參數(shù)的介紹:
對(duì)于插入操作,假如數(shù)據(jù)庫(kù)表結(jié)構(gòu)中支持自動(dòng)生成主鍵的字段,那么你可以設(shè)置 useGeneratedKeys=”true”,而且設(shè)置 keyProperty 到你已經(jīng)做好的目標(biāo)屬性上.
例如:
insert into Author (username,password,email,bio)
values (#{username},#{password},#{email},#{bio})
例如:
update Author set
username = #{username},
password = #{password},
email = #{email},
bio = #{bio}
where id = #{id}
例如:
delete from Author where id = #{id}