今天是劉小愛自學(xué)Java的第114天。 感謝你的觀看,謝謝你。 從今天開始進(jìn)入myBatis框架的學(xué)習(xí)。 既然要學(xué)它,那肯定要搞清楚它是干嘛的? 它是由Apache開源的一個數(shù)據(jù)持久層框架, 提到數(shù)據(jù)持久層,我就想到了dao層,也就很自然而然地想到了數(shù)據(jù)庫。 它可以對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增刪改查,并且比我們之前在用的jdbcTemplate更加。 簡單說下今天的學(xué)習(xí)內(nèi)容:
一、jdbc環(huán)境的搭建1maven父工程 我們學(xué)Java的都知道繼承的概念,父類中的屬性和方法,子類都可以直接使用。 其實(shí)在maven工程中也有父工程和子工程的概念,我們創(chuàng)建一個父工程: 和創(chuàng)建普通maven工程一樣的方式,需要注意的地方在于:
那既然不寫代碼,父工程用來干嘛的呢? 2依賴管理 關(guān)于依賴,學(xué)maven的時候?qū)iT就講過,說白了就是jar包,但比jar包更好管理。 每個業(yè)務(wù)模塊都會有自己需要的jar包。 既然如此,那何不專門把依賴存放在父工程?那個子工程需要哪些依賴就取哪些。 ①版本管理 每一個jar包都會有各種各樣的版本,如果版本不統(tǒng)一就會出現(xiàn)沖突問題。 而父工程就可以解決這個問題。 在父工程中就規(guī)定好jar包的版本號,所有的子工程都是用父工程中指定的版本。 如果版本號需要更換,只需要修改父工程中的即可,管理起來特別地方便。 ②依賴管理 子工程需要哪些依賴,直接從父工程中取。 當(dāng)然一般都會在父工程中放很多依賴,我這邊截圖放不下,就不一一說明了。 3創(chuàng)建子工程 其創(chuàng)建步驟如下圖: 直接在父工程中new一個子工程。 module,模塊的意思,父工程下的一個模塊,也就是它的子工程。 在子工程pom文件中引入對應(yīng)的依賴即可,其中關(guān)于版本不用規(guī)定,由父工程決定。 最后做一個小結(jié): 父工程的典型作用在于jar包版本的統(tǒng)一管理,此外還有項(xiàng)目的聚合(這個后續(xù)會學(xué))。 二、jdbc的回顧既然是對數(shù)據(jù)庫進(jìn)行操作,肯定先要有對應(yīng)的數(shù)據(jù)來做測試: 導(dǎo)入對應(yīng)的sql文件創(chuàng)建數(shù)據(jù)表。 當(dāng)然在數(shù)據(jù)量不多的情況下,也可以直接在Navicat上創(chuàng)建sql語句并執(zhí)行。 sql語句我這邊就不說明了,測試數(shù)據(jù)網(wǎng)上找,自己寫都可以。 有了數(shù)據(jù)表之后,我們使用Java代碼對數(shù)據(jù)庫進(jìn)行查詢操作。 其核心六步驟,因?yàn)槭褂昧祟A(yù)編譯,所以多了一個設(shè)置參數(shù)的步驟。 這些步驟不說滾瓜爛熟,基本上也是非常熟悉了,寫了很多遍: ①注冊驅(qū)動②獲取連接 數(shù)據(jù)庫四大金剛,根據(jù)這四個參數(shù)可以定位我們要操作的數(shù)據(jù)庫: 數(shù)據(jù)庫在哪臺電腦上?數(shù)據(jù)庫叫什么名字? ③預(yù)編譯④設(shè)置參數(shù) 關(guān)于預(yù)編譯我以前專門也學(xué)習(xí)說明過,為了防止sql注入,使用預(yù)編譯。 參數(shù)也就是指定sql語句中“?”的值。 ⑤執(zhí)行語句 查詢語句,使用executeQuery()方法。 ⑥處理結(jié)果⑦釋放資源 根據(jù)數(shù)據(jù)表中對應(yīng)的字段名,取出對應(yīng)的值。 表中字段有很多,這邊只取兩個作為例子。 好,代碼編寫完畢,但是這個流程太復(fù)雜繁瑣了,每次都要這樣寫的話簡直要命。 所以為了簡化代碼的編寫,我們后面學(xué)習(xí)了jdbcTemplate,使用起來方便很多。 而mybatis要更加地強(qiáng)大。 三、mybatis的引入1核心配置文件 在resource中創(chuàng)建一個mybatis的XML核心配置文件,名稱自定義。 該配置文件代碼的編寫,我們需要參考官方文檔或者網(wǎng)絡(luò)搜尋復(fù)制即可。 但是我們要修改里面的參數(shù):也就是數(shù)據(jù)庫四大金剛,要設(shè)置成我們自己的。 其中的映射文件需要再次創(chuàng)建一個配置文件,并且映射文件一定要在核心文件配置說明。 就是每創(chuàng)建一個新的映射文件,都要記得在該核心配置文件中說明。 2映射文件配置 該配置文件等于是把sql語句獨(dú)立出去了,我們以前要在Java代碼中編寫一個Java字符串。 namespace+id 這個就是作為標(biāo)識,在Java代碼中需要使用其定位sql語句的位置。 resultType Java中的實(shí)體類和數(shù)據(jù)庫中的表存在著對應(yīng)關(guān)系,比如User實(shí)體類和tab_user表。 其中要寫User類的全限定名。 3Java代碼編寫 ①獲取核心配置文件 也就是1中的mybatis-config.xml文件。 這里使用mybatis提供的Resources工具類調(diào)用getResourceAsStream()即可。 獲取的結(jié)果就是一個IO流。 ②獲取sqlSession 先構(gòu)建對應(yīng)的工廠,再調(diào)用openSession()方法開啟session。 ③執(zhí)行查詢操作 因?yàn)槲覀冊谟成湮募袑?yīng)的是查詢,那這里使用selectOne方法,參數(shù)為:
④關(guān)流不要忘記了 以上就是對于mybatis的使用,點(diǎn)擊運(yùn)行即可對數(shù)據(jù)庫進(jìn)行查詢。 當(dāng)然對各個步驟只是做了一個初步了解,具體有什么作用還并不是很清楚。 明天我們繼續(xù)深入地學(xué)習(xí)mybatis。 最后謝謝你的觀看。 如果可以的話,麻煩幫忙點(diǎn)個贊,謝謝你。 |
|