Java?MyBatis之Mapper代理詳解
Mapper代理
上一節(jié)MyBatis快速入們中依舊有硬編碼的部分:
List<Member> members = sqlSession.selectList("test.selectAll");
這里test.selectAll就是硬編碼,當(dāng)我們xml文件中sql語(yǔ)句較多時(shí),依舊不太方便,還沒(méi)有提示功能!,因此本節(jié)就介紹Mapper代理,使用Mapper代理方式完成上一篇的入門(mén)案例!
步驟如下圖:
對(duì)于第一步,請(qǐng)看下面目錄結(jié)構(gòu):
我們可以直接將MemberMapper.xml放到j(luò)ava.com.aniu.mapper目錄下,但這樣不符合項(xiàng)目規(guī)范,xml配置文件我們一般都放resources目錄,因此你需要在resources目錄建一個(gè)同樣的目錄,這樣Maven編譯后的class文件Member.Mapper和MemberMapper.xml依舊在同一個(gè)目錄:
需要注意的是,resources里面是目錄,我們不能以包的com.aniu.mapper的方式建立多層文件夾,應(yīng)該用com/aniu/mapper這種方式!
第二步:
命名空間設(shè)為Mapper接口的全限定名!
第三步:
需要注意的是要記得在配置文件中更改映射文件的路徑!
當(dāng)然,當(dāng)sql映射文件多了之后,mybatis配置文件中要導(dǎo)入的sql映射文件也就多了,我們用這種Mapper代理的方式,可以用包掃描方式一次引入所有的sql映射文件!
public class MyBatisDemo2 { public static void main(String[] args) throws IOException { //1. 加載mybatis的核心配置文件,獲取 SqlSessionFactory String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //2. 獲取SqlSession對(duì)象,用它來(lái)執(zhí)行sql SqlSession sqlSession = sqlSessionFactory.openSession(); //3. 執(zhí)行sql (只有這塊需要手寫(xiě),其他步驟直接復(fù)制) // List<Member> members = sqlSession.selectList("test.selectAll"); // 命名空間+id,這就是命名空間的作用:便于區(qū)分 MemberMapper memberMapper = sqlSession.getMapper(MemberMapper.class); List<Member> members = memberMapper.selectAll(); System.out.println(members); //4. 釋放資源 sqlSession.close(); } }
到此這篇關(guān)于Java MyBatis之Mapper代理詳解的文章就介紹到這了,更多相關(guān)Java Mapper代理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java新特性之for循環(huán)最全的用法總結(jié)
下面小編就為大家?guī)?lái)一篇java新特性之for循環(huán)最全的用法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12如何將JSP/Servlet項(xiàng)目轉(zhuǎn)換為Spring Boot項(xiàng)目
這篇文章主要介紹了如何將JSP/Servlet項(xiàng)目轉(zhuǎn)換為Spring Boot項(xiàng)目,幫助大家更好的利用springboot進(jìn)行網(wǎng)絡(luò)編程,感興趣的朋友可以了解下2020-10-10Java利用遞歸實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)的工具類(lèi)
有時(shí)候,我們的數(shù)據(jù)是帶有層級(jí)的,比如常見(jiàn)的省市區(qū)三級(jí)聯(lián)動(dòng),就是一層套著一層。而我們?cè)跀?shù)據(jù)庫(kù)存放數(shù)據(jù)的時(shí)候,往往是列表形式的,這個(gè)時(shí)候可能就需要遞歸處理為樹(shù)形結(jié)構(gòu)了。本文就為大家介紹了Java利用遞歸實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)的工具類(lèi),希望對(duì)大家有所幫助2023-03-03java基礎(chǔ)-給出一個(gè)隨機(jī)字符串,判斷有多少字母?多少數(shù)字?
這篇文章主要介紹了java基礎(chǔ)-給出一個(gè)隨機(jī)字符串,判斷有多少字母?多少數(shù)字?文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04SpringBoot基于Mybatis攔截器和JSqlParser實(shí)現(xiàn)數(shù)據(jù)隔離
本文將介紹如何在 Spring Boot 項(xiàng)目中利用Mybatis的強(qiáng)大攔截器機(jī)制結(jié)合JSqlParser,一個(gè)功能豐富的 SQL 解析器,來(lái)輕松實(shí)現(xiàn)數(shù)據(jù)隔離的目標(biāo),本文根據(jù)示例展示如何根據(jù)當(dāng)前的運(yùn)行環(huán)境來(lái)實(shí)現(xiàn)數(shù)據(jù)隔離,需要的朋友可以參考下2024-04-04Spring Security6配置方法(廢棄WebSecurityConfigurerAdapter)
本文主要介紹了Spring Security6配置方法(廢棄WebSecurityConfigurerAdapter),就像文章標(biāo)題所說(shuō)的,SpringSecurity已經(jīng)廢棄了繼承WebSecurityConfigurerAdapter的配置方式,下面就來(lái)詳細(xì)的介紹一下,感興趣的可以了解一下2023-12-12