溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MyBatis-Plus如何自定義SQL

發(fā)布時間:2022-02-10 09:16:40 來源:億速云 閱讀:1003 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“MyBatis-Plus如何自定義SQL”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“MyBatis-Plus如何自定義SQL”這篇文章吧。

一、在src/main/resource目錄下編寫XML

1.1  目錄結(jié)構(gòu)

我們將UserMapper.xml放在resource下的mapper目錄中,我的整個項目目錄如下

MyBatis-Plus如何自定義SQL

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)我們的信息了!

MyBatis-Plus如何自定義SQL

二、在src/main/java目錄下編寫XML

2.1  目錄結(jié)構(gòu)

TIp:在java下的mapeer目錄中建立存放我們的xml配置的目錄xml包

MyBatis-Plus如何自定義SQL

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)以下的錯誤。

MyBatis-Plus如何自定義SQL

為什么呢?

這是因為在maven默認(rèn)情況下是不會將src/main/java目錄的xml等資源打包進(jìn)入class文件夾的,而是直接忽略掉。不信的話我們?nèi)タ匆幌聇arget目錄。

可以發(fā)現(xiàn)這里并沒有將我們的xml文件打包進(jìn)去。

MyBatis-Plus如何自定義SQL

解決方案配置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ù)庫信息了!

MyBatis-Plus如何自定義SQL

我們再去查看以下target目錄

MyBatis-Plus如何自定義SQL

可以發(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的配置文件。

以上是“MyBatis-Plus如何自定義SQL”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI