摘要:前言目前的大環(huán)境下,使用作為持久層框架還是占了絕大多數(shù)的,下面我們來(lái)說(shuō)一下使用的幾種姿勢(shì)。測(cè)試測(cè)試的程序與之前的一致,我們直接訪問(wèn),可以看到成功的結(jié)果姿勢(shì)三使用的姿勢(shì)和可以與上面兩種方式進(jìn)行結(jié)合,。。。接口的實(shí)現(xiàn)是通過(guò)。然后我們將的改為。
前言
目前的大環(huán)境下,使用Mybatis作為持久層框架還是占了絕大多數(shù)的,下面我們來(lái)說(shuō)一下使用Mybatis的幾種姿勢(shì)。
姿勢(shì)一:零配置注解開(kāi)發(fā) 第一步:引入依賴(lài)首先,我們需要在pom文件中添加依賴(lài):
第二步:配置文件這里我們采用yml來(lái)進(jìn)行編寫(xiě),與properties文件相比,yml看起來(lái)更加簡(jiǎn)潔優(yōu)雅,這里需要注意的是driver-class-name這個(gè)屬性我們采用的是com.mysql.cj.jdbc.Driver而非之前的com.mysql.jdbc.Driver,如果采用之前包下的Driver,控制臺(tái)會(huì)打印出一行這樣的信息告訴我們?nèi)ビ眯碌膥
第三步:指定MapperScan首先,我們需要在啟動(dòng)類(lèi)指定@MapperScan,這樣做就可以不用去挨個(gè)的在Mapper接口中添加@Mapper注解。這里的值就是你的Mapper接口所在的包的路徑。
第四步:編寫(xiě)Mapper接口通過(guò)@Select注解和@Results注解可以指定SQL語(yǔ)句以及返回值。當(dāng)然,其他的不同的操作也有不同的注解,比如@Insert、@Update、@Delete
第五步:測(cè)試程序編寫(xiě)訪問(wèn) localhost:8081/user/findAll,我們就可以看到測(cè)試的結(jié)果:
姿勢(shì)二:XML我們用的最多的是這種方式,下面來(lái)看看怎么去實(shí)現(xiàn),第一步與姿勢(shì)一的重復(fù),這里就不再多做闡述
第一步:編寫(xiě)配置文件我們需要在配置文件中添加mybatis-config.xml的路徑以及用于Mapper*.xml的文件的路徑:
第二步:編寫(xiě)Mapper接口以及配置文件:Mapper接口:
mybatis-config.xml:
UserMapper.xml:
這里需要注意UserMapper.xml中的namespace需要與接口的路徑一致,否則會(huì)出現(xiàn)錯(cuò)誤。
測(cè)試:測(cè)試的程序與之前的一致,我們直接訪問(wèn)localhost:8082/user/findAll,可以看到成功的結(jié)果:
姿勢(shì)三:SqlSession使用SqlSession的姿勢(shì)和可以與上面兩種方式進(jìn)行結(jié)合,emmm。。??梢赃@么理解,SQL就在那里,只不過(guò)分為了兩個(gè)不同的方法去調(diào)用。其余的代碼我們就不再多講,直接來(lái)看是如何調(diào)用的:
可以看到,參數(shù)寫(xiě)的是要調(diào)用的方法的路徑(這里是與namespace相對(duì)應(yīng))。下面我們可以運(yùn)行一下程序:
姿勢(shì)四:基于SqlSession的升級(jí)這里,我們基于SqlSession進(jìn)行了一次升級(jí),首先我們寫(xiě)了一個(gè)BaseDao,作為一個(gè)公用的接口。接口的實(shí)現(xiàn)是通過(guò)sqlSessionTemplate。
然后我們將*Mapper.xml的namespace改為*Mapper?,F(xiàn)在,我們可以直接將所有的Mapper接口刪除,直接通過(guò)dao進(jìn)行調(diào)用~
然后我們來(lái)啟動(dòng)程序后去訪問(wèn)
關(guān)于Mybatis的使用,我們就先講到這里~
源碼可以去github或者碼云上進(jìn)行下載,后續(xù)的例子都會(huì)同步更新。
公眾號(hào)原創(chuàng)文章,文筆有限,才疏學(xué)淺,文中若有不正之處,萬(wàn)望告知。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/75590.html
摘要:用戶(hù)態(tài)不能干擾內(nèi)核態(tài)所以指令就有兩種特權(quán)指令和非特權(quán)指令不同的狀態(tài)對(duì)應(yīng)不同的指令。非特權(quán)指令所有程序均可直接使用。用戶(hù)態(tài)常態(tài)目態(tài)執(zhí)行非特權(quán)指令。 這是我今年從三月份開(kāi)始,主要的大廠面試經(jīng)過(guò),有些企業(yè)面試的還沒(méi)來(lái)得及整理,可能有些沒(méi)有帶答案就發(fā)出來(lái)了,還請(qǐng)各位先思考如果是你怎么回答面試官?這篇文章會(huì)持續(xù)更新,請(qǐng)各位持續(xù)關(guān)注,希望對(duì)你有所幫助! 面試清單 平安產(chǎn)險(xiǎn) 飛豬 上汽大通 浩鯨科...
摘要:上一篇學(xué)習(xí)了服務(wù)提供者,但是并不是單單就學(xué)習(xí)了服務(wù)提供者。中間還穿插使用了數(shù)據(jù)源和整合。但是上篇使用時(shí)還是沿用了老的方式,需要配置對(duì)應(yīng)的文件。 1、上一篇學(xué)習(xí)了服務(wù)提供者provider,但是并不是單單就學(xué)習(xí)了服務(wù)提供者。中間還穿插使用了Hikari數(shù)據(jù)源和spring cloud整合mybatis。但是上篇使用mybatis時(shí)還是沿用了老的方式,需要配置mapper對(duì)應(yīng)的xml文件。...
摘要:前提好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲抱歉了。熟悉我的人都知道我寫(xiě)博客的時(shí)間比較早,而且堅(jiān)持的時(shí)間也比較久,一直到現(xiàn)在也是一直保持著更新?tīng)顟B(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲:抱歉了!。自己這段時(shí)...
摘要:如果我們?cè)趧?dòng)態(tài)中用到了參數(shù)作為判斷條件,那么也是一定要加注解的,例如如下方法定義出來(lái)的如下這種情況,即使只有一個(gè)參數(shù),也需要添加注解,而這種情況卻經(jīng)常被人忽略好了,不知道大家有沒(méi)有到呢有問(wèn)題歡迎留言討論。 有一些小伙伴覺(jué)得 MyBatis 只有方法中存在多個(gè)參數(shù)的時(shí)候,才需要添加 @Param 注解,其實(shí)這個(gè)理解是不準(zhǔn)確的。即使 MyBatis 方法只有一個(gè)參數(shù),也可能會(huì)用到 @Par...
摘要:引入了新的環(huán)境和概要信息,是一種更揭秘與實(shí)戰(zhàn)六消息隊(duì)列篇掘金本文,講解如何集成,實(shí)現(xiàn)消息隊(duì)列。博客地址揭秘與實(shí)戰(zhàn)二數(shù)據(jù)緩存篇掘金本文,講解如何集成,實(shí)現(xiàn)緩存。 Spring Boot 揭秘與實(shí)戰(zhàn)(九) 應(yīng)用監(jiān)控篇 - HTTP 健康監(jiān)控 - 掘金Health 信息是從 ApplicationContext 中所有的 HealthIndicator 的 Bean 中收集的, Spring...
閱讀 946·2021-11-18 10:02
閱讀 1831·2019-08-30 15:56
閱讀 2625·2019-08-30 13:47
閱讀 2695·2019-08-29 12:43
閱讀 923·2019-08-29 11:19
閱讀 1859·2019-08-28 18:23
閱讀 2727·2019-08-26 12:23
閱讀 3081·2019-08-23 15:29