MyBatis-Plus自定義SQL的詳細(xì)過程記錄
前言
當(dāng)我們在開發(fā)過程中,如果MyBatis-Plus中的SQL語句并不能滿足我們的需求,那么我們可以在XML文件中自定義SQL語句,這樣的話我們就可以在MyBatis-Plus的基礎(chǔ)上繼續(xù)提高我們的開發(fā)效率了。本篇博客也將講解如何在src/main/resource目錄下和src/main/java目錄下對XML的配置。
一、在src/main/resource目錄下編寫XML
1.1 目錄結(jié)構(gòu)
我們將UserMapper.xml放在resource下的mapper目錄中,我的整個項目目錄如下
1.2 編寫實體類對應(yīng)的Mapper接口
Tip:我們這里自定義了getAll()方法,獲取全部用戶的信息。
package com.yixin.mapper; import com.yixin.pojo.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; import java.util.List; /** * <p> * Mapper 接口 * </p> * * @author yixin * @since 2022-01-17 */ @Repository public interface UserMapper extends BaseMapper<User> { public List<User> getAll(); }
1.3 編寫UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yixin.mapper.UserMapper"> <select id="getAll" resultType="com.yixin.pojo.User"> select * from user </select> </mapper>
1.4 在配置文件中掃描我們的xml配置的位置。
application.properties:
mybatis-plus.mapper-locations=classpath:/mapper/**.xml
1.5 測試
import org.springframework.boot.test.context.SpringBootTest; import java.io.InputStream; import java.util.ArrayList; import java.util.List; @SpringBootTest class AutoApplicationTests { @Autowired private UserMapper userMapper; @Test void test() { List<User> userList=userMapper.getAll(); System.out.println(userList); } }
結(jié)果:
可以發(fā)現(xiàn),成功出現(xiàn)我們的信息了!
二、在src/main/java目錄下編寫XML
2.1 目錄結(jié)構(gòu)
TIp:在java下的mapeer目錄中建立存放我們的xml配置的目錄xml包
2.2 編寫實體類對應(yīng)的Mapper接口
package com.yixin.mapper; import com.yixin.pojo.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; import java.util.List; /** * <p> * Mapper 接口 * </p> * * @author yixin * @since 2022-01-17 */ @Repository public interface UserMapper extends BaseMapper<User> { public List<User> getAll(); }
2.3 編寫UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yixin.mapper.UserMapper"> <select id="getAll" resultType="com.yixin.pojo.User"> select * from user </select> </mapper>
2.4 編寫配置文件
application.properties:
mybatis-plus.mapper-locations=classpath:com/yixin/mapper/xml/UserMapper.xml
2.5 ?? 配置pom.xml(重要)??
這一步非常重要,因為如果沒有配置pom.xml就去運行,那么會出現(xiàn)以下的錯誤。
為什么呢?
這是因為在maven默認(rèn)情況下是不會將src/main/java目錄的xml等資源打包進(jìn)入class文件夾的,而是直接忽略掉。不信的話我們?nèi)タ匆幌聇arget目錄。
可以發(fā)現(xiàn)這里并沒有將我們的xml文件打包進(jìn)去。
解決方案:配置pom.xml
我們只需在pom中加入如下配置,告訴idea,在編譯的時候?qū)?strong>src/main/java下的xml一起打包進(jìn)class文件夾中,這樣也就不會報異常了。
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>
2.6 測試
import org.springframework.boot.test.context.SpringBootTest; import java.io.InputStream; import java.util.ArrayList; import java.util.List; @SpringBootTest class AutoApplicationTests { @Autowired private UserMapper userMapper; @Test void test() { List<User> userList=userMapper.getAll(); System.out.println(userList); } }
結(jié)果:
可以發(fā)現(xiàn)成功出現(xiàn)我們的數(shù)據(jù)庫信息了!
我們再去查看以下target目錄:
可以發(fā)現(xiàn),已經(jīng)把我們的xml配置導(dǎo)進(jìn)來了,如果發(fā)現(xiàn)還是沒有的話,建議把target目錄刪除,然后重新運行,就可以重新生成target目錄了,這時候就能發(fā)現(xiàn)你的xml文件了。
三、classpath和classpath*的區(qū)別
classpath:只會在你的class路徑下尋找
classpath*:不僅包含class路徑,還包括jar文件中(class路徑)進(jìn)行查找
一般來說,在大型公司的項目開發(fā)中都會需要用到classpath*進(jìn)行文件配置,因為通常會用到第三方的jar,所以大多情況下會需要查找這些jar的配置文件。
小結(jié)
以上就是【一心同學(xué)】對在MyBatis-Plus中【自定義SQL】的步驟和注意事項的講解,【自定義SQL】可以幫助我們在MyBatis-Plus的基礎(chǔ)上去編寫我們自己的SQL語句,讓我們的開發(fā)變得【十分高效】。
總結(jié)
到此這篇關(guān)于MyBatis-Plus自定義SQL的文章就介紹到這了,更多相關(guān)MyBatis-Plus自定義SQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?Boot?整合?Fisco?Bcos部署、調(diào)用區(qū)塊鏈合約的案例
本篇文章介紹?Spring?Boot?整合?Fisco?Bcos?的相關(guān)技術(shù),最最重要的技術(shù)點,部署、調(diào)用區(qū)塊鏈合約的工程案例,本文通過流程分析給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-01-01idea 創(chuàng)建properties配置文件的步驟
這篇文章主要介紹了idea 創(chuàng)建properties配置文件的步驟,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01Java8中Stream?API的peek()方法詳解及需要注意的坑
這篇文章主要給大家介紹了關(guān)于Java8中Stream?API的peek()方法詳解及需要注意的坑,Java 中的 peek 方法是 Java 8 中的 Stream API 中的一個方法,它屬于中間操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06Java 服務(wù)端消息推送的實現(xiàn)小結(jié)
本文主要介紹了Java 服務(wù)端消息推送的實現(xiàn)小結(jié),主要包括四種常見的消息實時推送方案:短輪詢、長輪詢、SSE?和?WebSocket,具有一定的參考價值,感興趣的可以了解一下2023-10-10Java實現(xiàn)分解任意輸入數(shù)的質(zhì)因數(shù)算法示例
這篇文章主要介紹了Java實現(xiàn)分解任意輸入數(shù)的質(zhì)因數(shù)算法,涉及java數(shù)學(xué)運算相關(guān)操作技巧,需要的朋友可以參考下2017-10-10Mybatis輸入輸出映射及動態(tài)SQL Review
這篇文章主要介紹了Mybatis輸入輸出映射及動態(tài)SQL Review,需要的朋友可以參考下2017-02-02Java StringBuffer與StringBuilder有什么區(qū)別
當(dāng)對字符串進(jìn)行修改的時候,需要使用 StringBuffer 和 StringBuilder類,和String類不同的是,StringBuffer和 StringBuilder類的對象能夠被多次的修改,并且不產(chǎn)生新的未使用對象,本篇我們來分析分析它們的區(qū)別2023-01-01復(fù)雜JSON字符串轉(zhuǎn)換為Java嵌套對象的實現(xiàn)
這篇文章主要介紹了復(fù)雜JSON字符串轉(zhuǎn)換為Java嵌套對象的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09