今天這一章要緊接上一講中的東西,本章中創(chuàng)建基于單表操作的CRUD與GetList操作,此示例中以Visitor表為范例,為了創(chuàng)建一點測試數(shù)據(jù)我們先弄個Add方法吧

繼續(xù)在上次的IVisitorOperation接口類中添加add,delete,update,query與getList接口方法,如下所示:

IVisitorOperation接口類

對于相應(yīng)的CRUD操作,在VisitorMapper.xml的<mapper>節(jié)點下分別對應(yīng)insert,update,delete,select節(jié)點,具體配置詳情參數(shù)說明課參照官網(wǎng) http://mybatis.github.io/mybatis-3/sqlmap-xml.html
這個示例中要的配置如下,傳遞的參數(shù)用#{parameter_name},當(dāng)然也可直接用${parameter_name},

前者的方式,Mybatis會把它轉(zhuǎn)化為參數(shù)化的形式例如 insert into table (name) values (#{name}) => insert into table (name) values ( ? ) (Mysql情況下)

后者的方式,Mybatis會原封不動的不做任何操作把參數(shù)傳過來,例如  insert into table (name) values (${name}) => insert into table (name) values ( [你所傳的值] ),傳aa,這里就是aa。

VisitorMapper配置

此處注意的一點是:操作節(jié)點中的ID要對應(yīng)接口定義中的接口名字,參數(shù)類型也要相應(yīng)對應(yīng),例如接口里是add(Visitor visitor),那么在配置insert節(jié)點的時候id="add",parameterType="Visitor"

否則會報相應(yīng)的異常,例如id節(jié)點不對應(yīng)接口名稱會出現(xiàn)如下異常:

 

大家可以注意到在VisitorMapper.xml這個配置文件中在獲取list的時候,使用的是resultMap,使用resultMap的情況下你可以指定你自己的sql語句與哪些字段相映射,因為有時候你可以不需要那么多列,那你在配置映射的時候也不需要配置那么多映射,或者說你的列有起過別名,那么就不能直接使用resultType="Visitor"的方式進行映射,因為Mybatis默認(rèn)映射方式是通過Javabean的屬性名與表的字段是否一致來匹配的,也可以通過配置<configuration>節(jié)點下的<settings>屬性值來控制是否映射的時候以Javabean中的駝峰命名方式配置如下。

<settings>
    
<setting name="mapUnderscoreToCamelCase" value="false" />
</settings>

 

具體其他修改Mapper的其他配置可以通過 http://mybatis.github.io/mybatis-3/configuration.html#settings 查看。

 

對于Visitor的Mapper類如下:

VisitorMapper類CRUD配置

這里要大家還會注意到有一個節(jié)點<sql>節(jié)點,這個的用處就是提取公用的sql語句或者說字段,以便其他地方復(fù)用,其他詳細(xì)說明用法可以參照 http://mybatis.github.io/mybatis-3/sqlmap-xml.html
剩下的就是和剛剛一樣的操作了,大家可以在demo程序里建立一個DemoRun的類存放各類測試方法,如下:


DemoRun測試類

運行一下后一個簡單的基于單表CRUD,DEMO就完成啦

下周會繼續(xù)更新下一章,講述基于多表聯(lián)合查詢下的Mybatis用法~^0^,一天不能發(fā)太多.....因為連續(xù)規(guī)定不能發(fā)表太多所以,今天就暫時到這里啦~



如果你覺得這篇文章對你有用,歡迎推薦[推薦]

如果你覺得文章內(nèi)有錯誤歡迎指出^0^~

如果您想轉(zhuǎn)載本博客,請注明出處

如果您對本文有意見或者建議,歡迎留言

本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則作者保留追究法律責(zé)任的權(quán)利。