MyBatis的簡(jiǎn)單使用

MyBatis的基本使用

一.導(dǎo)包,當(dāng)然如果你用的是oracle的數(shù)據(jù)庫(kù),它的jar包也要導(dǎo)入

二.寫(xiě)MyBatis的最主要配置文件

格式直接抄官網(wǎng)的(注意格式略有刪減)

<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        //property非常關(guān)鍵的,必填項(xiàng)
        <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
        <property name="username" value="spitman"/>
        <property name="password" value="123456"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    //暫時(shí)還不需要填寫(xiě),因?yàn)檫@個(gè)xml文件還沒(méi)寫(xiě)
    //不過(guò)最后所有的mapper.xml文件都要添加進(jìn)去
    <mapper resource="com/thundersoft/mybatis/model/BookMapper.xml"/>
  </mappers>
</configuration>

三.創(chuàng)建xml文件,定義你所需要的查詢語(yǔ)句,實(shí)際上就是上面mappers指向的文件

<mapper namespace="com.thundersoft.mybatis.model.BookMapper">
//namespace是標(biāo)識(shí)這個(gè)mapper中查詢語(yǔ)句的唯一標(biāo)識(shí)
  <select id="selectBook" resultType="com.thundersoft.mybatis.bean.Book" parameterType="map">
//id表示這個(gè)sql語(yǔ)句的標(biāo)識(shí)
//resultType:表示這個(gè)返回內(nèi)容對(duì)應(yīng)的bean類(lèi)(注意要寫(xiě)完整類(lèi)名,而且即使返回的是個(gè)list也要寫(xiě)list中元素的類(lèi)名) 
//parameterType: 表示查詢時(shí)需要傳入的參數(shù)類(lèi)型,這個(gè)也應(yīng)該是完整類(lèi)名,
不過(guò)如果是多個(gè)參數(shù),則可以用Map來(lái)傳入,那么這里只要寫(xiě)map就行了
    select * from Book where id = #{id}     //自己定義的sql語(yǔ)句
    //#{xxxxxx}:這個(gè)是占位符,如果用Map傳參xxxxxx寫(xiě)map中的鍵
  </select>
  
  <select id="selectAll" resultType="com.thundersoft.mybatis.bean.Book">
    select * from Book
  </select>
  <insert>具體查詢官方文檔</insert>
</mapper>

(二)和(三) 是寫(xiě)配置文件,非常重要

四.查詢數(shù)據(jù)

String resource = "com/thundersoft/mybatis/xml/mybatis-config.xml";
//(二)中配置的文件路徑

InputStream is = Resources.getResourceAsStream(resource); 
//讀取配置文件

SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is); 
//通過(guò)配置文件來(lái)構(gòu)建SqlSessionFactory 對(duì)象

SqlSession ss = ssf.openSession();
//生成會(huì)話

Map map = new HashMap(); 
map.put("id", "1");
map.put("price", "202110");
//把查詢需要的參數(shù)全部放入這個(gè)map中

Book book = ss.selectOne("com.thundersoft.mybatis.model.BookMapper.selectBook",map);
//(com.thundersoft.mybatis.model.BookMapper)是之前(三)中的namespace,用來(lái)標(biāo)識(shí)用哪里的mapper
//(selectBook)是具體的某個(gè)語(yǔ)句的id

System.out.println(book.getTitle()); 

五.更好的用法

mapper名字和sql語(yǔ)句的id寫(xiě)在字符串中,非常容易出錯(cuò),還不容易檢查

現(xiàn)在有個(gè)好辦法:

1.新建一個(gè)接口,把需要的sql語(yǔ)句抽象成一個(gè)接口
public interface BookMapper {
    List<Book> selectAll();
    Book selectBook(Map map);
}
2.然后把map.xml文件和這個(gè)接口取名一樣,除了后綴名,放在同一個(gè)包中
3.使用:
BookMapper bm = ss.getMapper(BookMapper.class);
//直接就會(huì)根據(jù)傳入的class對(duì)象和相同包下的BookMapper.xml文件生成一個(gè)BookMapper 的實(shí)現(xiàn)類(lèi)bm
//bm這個(gè)類(lèi)的功能就是在BookMapper.xml中sql語(yǔ)句的功能
List<Book> list = bm.selectAll();
for (Book book : list) {
    System.out.println(book.getTitle());;
}

使用簡(jiǎn)單到令人發(fā)指

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末檐薯,一起剝皮案震驚了整個(gè)濱河市搏屑,隨后出現(xiàn)的幾起案子供嚎,更是在濱河造成了極大的恐慌锅劝,老刑警劉巖拴泌,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蓬豁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)菇肃,“玉大人地粪,你說(shuō)我怎么就攤上這事∷霭” “怎么了驶忌?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)笑跛。 經(jīng)常有香客問(wèn)我,道長(zhǎng)聊品,這世上最難降的妖魔是什么飞蹂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮翻屈,結(jié)果婚禮上陈哑,老公的妹妹穿的比我還像新娘。我一直安慰自己伸眶,他們只是感情好惊窖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著厘贼,像睡著了一般界酒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘴秸,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天毁欣,我揣著相機(jī)與錄音庇谆,去河邊找鬼。 笑死凭疮,一個(gè)胖子當(dāng)著我的面吹牛饭耳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播执解,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼寞肖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了衰腌?” 一聲冷哼從身側(cè)響起新蟆,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桶唐,沒(méi)想到半個(gè)月后栅葡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尤泽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年欣簇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坯约。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡熊咽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闹丐,到底是詐尸還是另有隱情横殴,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布卿拴,位于F島的核電站衫仑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏堕花。R本人自食惡果不足惜文狱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缘挽。 院中可真熱鬧瞄崇,春花似錦、人聲如沸壕曼。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)腮郊。三九已至摹蘑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間轧飞,已是汗流浹背纹蝴。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工庄萎, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人塘安。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓糠涛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親兼犯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子忍捡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL切黔、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的...
    笨鳥(niǎo)慢飛閱讀 5,511評(píng)論 0 4
  • 1 引言# 本文主要講解JDBC怎么演變到Mybatis的漸變過(guò)程砸脊,重點(diǎn)講解了為什么要將JDBC封裝成Mybait...
    七寸知架構(gòu)閱讀 76,460評(píng)論 36 980
  • Java數(shù)據(jù)持久化之mybatis 一. mybatis簡(jiǎn)介 1.1 原始的JDBC操作: Java 通過(guò) Jav...
    小Q逛逛閱讀 4,912評(píng)論 0 16
  • 官方文檔 簡(jiǎn)介 入門(mén) XML配置 XML映射文件 動(dòng)態(tài)SQL Java API SQL語(yǔ)句構(gòu)建器 日志 一、 JD...
    拾壹北閱讀 3,544評(píng)論 0 52
  • 還是一個(gè)陰雨天纬霞,與昨天同樣的在午間坐靠在車(chē)廂裡凌埂,不同的是車(chē)窗外的風(fēng)景和行車(chē)的速度。 高鐵剛經(jīng)過(guò)弋陽(yáng)的龜山诗芜,縱然是稍...
    樹(shù)子閱讀 156評(píng)論 0 0