mybatis注解之@Mapper和@MapperScan的使用
mybatis注解之@Mapper和@MapperScan
在使用Mybatis持久層框架來(lái)操作數(shù)據(jù)庫(kù)時(shí),我們可以使用@Mapper注解和@MapperScan注解來(lái)將Mapper接口類交給Sprinig進(jìn)行管理。
方式一:使用@Mapper注解
優(yōu)點(diǎn):粒度更細(xì)
缺點(diǎn):直接在Mapper接口類中加@Mapper注解,需要在每一個(gè)mapper接口類中都需要添加@Mapper注解,較為繁瑣
方式二:使用@MapperScan注解
通過(guò)@MapperScan可以指定要掃描的Mapper接口類的包路徑
@SpringBootApplication @MapperScan("com.erayt.mapper") public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
在路徑中可以使用 * 作為通配符對(duì)包名進(jìn)行匹配
@SpringBootApplication @MapperScan("com.erayt.*.mapper") public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
也可以使用@MapperScan注解對(duì)多個(gè)包進(jìn)行掃描
@SpringBootApplication @MapperScan("com.erayt.mapperFirst","com.erayt.mapperSecond") public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
@MapperScan和@Mapper區(qū)別及理解
作用
掃描項(xiàng)目中的Dao層,將dao接口類注入到Spring,能夠讓其他類進(jìn)行引用;
@Mapper
:在dao接口類中,添加此注解;麻煩的在于,每個(gè)dao接口類都必須添加此注解;@MapperScan
:可以指定要掃描的dao接口類的路徑,可以在啟動(dòng)類中添加此注解,可替代@Mapper注解(此模塊內(nèi)dao接口類不用都添加@Mapper注解)
掃描一個(gè)包
@MapperScan("com.demo.mapper")
:掃描指定包中的接口@MapperScan("com.demo.*.mapper")
:一個(gè) * 代表一級(jí)包;比如可以掃到com.demo.aaa.mapper,不能掃到com.demo.aaa.bbb.mapper@MapperScan("com.demo.**.mapper")
:兩個(gè) * 代表任意個(gè)包;比如可以掃到com.demo.aaa.mapper,也可以掃到com.demo.aaa.bbb.mapper
掃描多個(gè)包
如果dao接口類在主程序可以掃描的包或者子包下面:
@MapperScan({"com.kfit.demo","com.kfit.user"})
如果沒(méi)有,可以使用如下方式進(jìn)行配置:
@MapperScan({"com.kfit.*.mapper","org.kfit.*.mapper"})
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis實(shí)現(xiàn)動(dòng)態(tài)SQL的方法
動(dòng)態(tài)SQL是MyBatis強(qiáng)大特性之一,極大的簡(jiǎn)化我們拼裝SQL的操作,本文主要介紹了MyBatis實(shí)現(xiàn)動(dòng)態(tài)SQL的方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06springboot中.yml文件的值無(wú)法讀取的問(wèn)題及解決
這篇文章主要介紹了springboot中.yml文件的值無(wú)法讀取的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02JAVA 靜態(tài)代理模式詳解及實(shí)例應(yīng)用
這篇文章主要介紹了JAVA 靜態(tài)代理模式詳解及實(shí)例應(yīng)用的相關(guān)資料,這里舉例說(shuō)明java 靜態(tài)代理模式該如何使用,幫助大家學(xué)習(xí)參考,需要的朋友可以參考下2016-11-11BeanFactory與ApplicationContext的區(qū)別示例解析
這篇文章主要為大家介紹了BeanFactory與ApplicationContext的區(qū)別示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11JPA默認(rèn)值設(shè)置沒(méi)有效果的解決
這篇文章主要介紹了JPA默認(rèn)值設(shè)置沒(méi)有效果的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11JAVA集成Freemarker生成靜態(tài)html過(guò)程解析
這篇文章主要介紹了JAVA集成Freemarker生成靜態(tài)html過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06