mybatis框架簡(jiǎn)介
? mybatis框架是持久化框架,通過(guò)xml格式或注解的配置文件猖任,簡(jiǎn)化JDBC的代碼补履,來(lái)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接。
mybatis框架配置
? 本文主要是通過(guò)maven來(lái)搭建mybatis框架太伊,而搭建mybatis框架只需要導(dǎo)入mybatis的jar包還有數(shù)據(jù)庫(kù)和java連接的相應(yīng)驅(qū)動(dòng)包(下文使用的是mysql的驅(qū)動(dòng)包)就可以進(jìn)行。只需在pom.xml文件中添加注解:
mybatis實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)庫(kù)交換
1.建立數(shù)據(jù)庫(kù):
2.編寫(xiě)數(shù)據(jù)庫(kù)配置文件
? 在src文件夾下新建xml文件(Configuration.xml)逛钻,文件內(nèi)容如下:
其中
? <typeAlias>標(biāo)簽給實(shí)體類設(shè)置相應(yīng)的別名僚焦,方便后面的使用。
? <environment>標(biāo)簽來(lái)連接相應(yīng)的數(shù)據(jù)庫(kù)曙痘,其中參數(shù)url是設(shè)置要相應(yīng)連接的數(shù)據(jù)庫(kù)芳悲,username和password是用來(lái)設(shè)置連接數(shù)據(jù)庫(kù)的身份
? <mapper>標(biāo)簽是用來(lái)配置需要使用的映射文件
3.編寫(xiě)相應(yīng)的pojo類
? 這是相應(yīng)的pojo類的參數(shù)以及編寫(xiě)相應(yīng)的set與get方法(此處省略)
4.編寫(xiě)pojo類的映射文件
? 在新建pojo類的映射文件,該映射文件的路徑與數(shù)據(jù)庫(kù)配置文件中<mapper>標(biāo)簽對(duì)應(yīng)的路徑一致边坤;此處建立了的配置文件名為User.xml
本例子主要是通過(guò)接口來(lái)操作數(shù)據(jù)庫(kù)
? <mapper>標(biāo)簽中的屬性namespace是用來(lái)實(shí)現(xiàn)相應(yīng)方法的類
? ?<select>標(biāo)簽指代sql語(yǔ)句中的select語(yǔ)句名扛,id屬性對(duì)應(yīng)接口中的方法名,parameterType接口方法中傳入?yún)?shù)的數(shù)據(jù)類型茧痒,resultType屬性指代方法所返回的類型(這里的User通過(guò)剛剛<typeAlias>來(lái)映射到相應(yīng)的類)肮韧;若當(dāng)要返回相應(yīng)集合時(shí),設(shè)置<resultMap>標(biāo)簽來(lái)得到相應(yīng)集合旺订。在<select>標(biāo)簽中設(shè)置sql語(yǔ)句操作數(shù)據(jù)庫(kù)弄企。
5.進(jìn)行具體操作
? 首先,編寫(xiě)相應(yīng)的接口区拳,路徑與映射文件對(duì)應(yīng)
? 后續(xù)步驟為:創(chuàng)建數(shù)據(jù)庫(kù)會(huì)話拘领、通過(guò)映射文件實(shí)例化相應(yīng)接口、調(diào)用相應(yīng)方法樱调、關(guān)閉會(huì)話
? 個(gè)人覺(jué)得方便约素,所以將創(chuàng)建數(shù)據(jù)庫(kù)會(huì)話編寫(xiě)成相應(yīng)的靜態(tài)方法
? 首先通過(guò)Reader類來(lái)讀入數(shù)據(jù)庫(kù)配置文件;然后建立相應(yīng)的SqlSessionFactory工廠笆凌,然后創(chuàng)建會(huì)話并返回圣猎。
? 以上,就是通過(guò)mybatis框架簡(jiǎn)單的與數(shù)據(jù)庫(kù)進(jìn)行交互的過(guò)程菩颖。
感想反思
? 通過(guò)最近實(shí)習(xí)期間样漆,因?yàn)轫?xiàng)目要求才開(kāi)始接觸mybatis框架;和以前在學(xué)校老師介紹的JDBC硬編碼相比晦闰,mybatis更為簡(jiǎn)潔并且改動(dòng)相應(yīng)的sql語(yǔ)句更為方便放祟;在性能上鳍怨,由于接觸時(shí)間不長(zhǎng),并未了解或者感受到性能上的區(qū)別跪妥。并且在項(xiàng)目期間使用mybatis框架時(shí)也遇到了相應(yīng)問(wèn)題鞋喇,當(dāng)使用xml格式數(shù)據(jù)->pojo類->寫(xiě)入數(shù)據(jù)庫(kù),寫(xiě)進(jìn)數(shù)據(jù)庫(kù)的內(nèi)容為空眉撵;可是若使用json格式則可正常寫(xiě)入侦香。
??而且本文也存在較大的局限性
? ? 1.僅記錄了通過(guò)接口的方式來(lái)操作數(shù)據(jù)庫(kù),并沒(méi)有介紹操作的其他方法纽疟。
? ? 2.并沒(méi)有介紹關(guān)聯(lián)查詢罐韩,僅介紹簡(jiǎn)單的增刪改查
? ? 3.配置文件上沒(méi)有涉及到多環(huán)境、多個(gè)數(shù)據(jù)庫(kù)時(shí)該如何配置的情況
? 最后污朽,在進(jìn)行增散吵、刪、改的事務(wù)時(shí)蟆肆,記得session.commit()矾睦!session.commit()!session.commit()炎功!
參考鏈接
wiki.jikexueyuan.com/project/mybatis-in-action/mybatis-and-spring.html