欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis Mapper.xml中的命名空間及命名方式

 更新時間:2021年09月30日 09:58:57   作者:姜小衰  
這篇文章主要介紹了MyBatis Mapper.xml中的命名空間及命名方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Mapper.xml相關(guān)使用

命名空間(Namespaces)

命名空間(Namespaces) 在之前版本的MyBatis中是可選的,這樣容易引起混淆因此毫無益處。現(xiàn)在命名空間則是必須的,且易于簡單地用更長的完完全限定名來隔離語句。

命名空間使得你所見到的接口綁定成為可能,盡管你覺得這些東西未必用得上,你還是應(yīng)該遵循這里的規(guī)定以防哪天你改變了主意。

出于長遠(yuǎn)考慮,使用命名空間,并將它置于合適的Java包命名空間之下,你將擁有一份更加整潔的代碼并提高了MyBatis的可用性

com/jianglei/example/bean/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>

    <select id="findById" resultType="User" parameterType="String">
        SELECT * FROM user_test where id = #{id}
    </select>

</mapper>

則啟動時則會拋出

org.apache.ibatis.builder.BuilderException: Mapper's namespace cannot be empty異常

命名解析

命名解析: 為了減少輸入量,MyBatis對所有的命名配置元素(包括語句,結(jié)果映射,緩存等)使用了如下的命名解析規(guī)則。

  • 完全限定名(比如"com.mypackage.MyMapper.selectAllThings")將被直接查找并且找到即用。
  • 短名稱(比如"selectAllThings")如果全局唯一也可以作為一個單獨(dú)的引用。如果不唯一,有兩個或兩個以上的相同名稱(比如“com.foo.selectAllThings ”和“com.bar.selectAllThings”), 那么使用時就會收到錯誤報告說短名稱是不唯一的,這種情況下就必須使用完全限定名。

如果使用短名稱,且不唯一則會拋出以下異常

com/jianglei/example/bean/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.jianglei.example.bean.UserMapper">
    <select id="findById" resultType="User" parameterType="String">
        SELECT * FROM user_test where id = #{id}
    </select>
</mapper>

com/jianglei/example/bean/UserMapper2.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.jianglei.example.bean.UserMapper2">

    <select id="findById" resultType="User" parameterType="String">
        SELECT * FROM user_test where id = #{id}
    </select>

</mapper>

以下代碼則會拋出

java.lang.IllegalArgumentException: findById is ambiguous in Mapped Statements collection (try using the full name including the namespace, or rename one of the entries)異常

    @Test
    public void testNamespace02() {
        SqlSession session = sqlSessionFactory.openSession();
        try {
            User user = session.selectOne("findById", "1");
            System.out.println("---------------------");
            System.out.println(user);
        }finally {
            session.close();
        }
    }

MyBatis中mapper.xml命名空間錯誤

項(xiàng)目場景

使用mybatis配置完成基本的增加操作

問題描述

運(yùn)行測試添加方法的時候報錯:

Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Wrong namespace. Expected ‘com.lwy.mapper.CarMapper' but found ‘com.lwy.pojo.Car'.

原因分析

進(jìn)行翻譯了一下,可以粗略的知道命名空間錯了

在這里插入圖片描述

解決方案

修改命名空間,找到mapper的xml文件修改名稱空間

修改前:我用的是實(shí)體類

在這里插入圖片描述

修改后mapper接口類

在這里插入圖片描述

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)連接nacos并支持多環(huán)境部署

    SpringBoot實(shí)現(xiàn)連接nacos并支持多環(huán)境部署

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)連接nacos并支持多環(huán)境部署方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java代碼中與Lua相互調(diào)用實(shí)現(xiàn)詳解

    Java代碼中與Lua相互調(diào)用實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了Java代碼中與Lua相互調(diào)用實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Spring系列之事物管理

    Spring系列之事物管理

    這篇文章主要介紹了Spring系列之事物管理,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring方面知識具有一定的參考學(xué)習(xí)價值,需要的朋友們一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • 三級聯(lián)動省市ajax的代碼

    三級聯(lián)動省市ajax的代碼

    這篇文章主要為大家詳細(xì)介紹了ajax實(shí)現(xiàn)省市三級聯(lián)動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助
    2021-07-07
  • Maven中錯誤使用parent.relativePath導(dǎo)致構(gòu)建失敗問題

    Maven中錯誤使用parent.relativePath導(dǎo)致構(gòu)建失敗問題

    這篇文章主要介紹了Maven中錯誤使用parent.relativePath導(dǎo)致構(gòu)建失敗問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • java后端合成圖片的實(shí)現(xiàn)示例

    java后端合成圖片的實(shí)現(xiàn)示例

    本文主要介紹了java后端合成圖片的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 如何解決websocket開啟多個頁面訪問同一個連接會失效的問題

    如何解決websocket開啟多個頁面訪問同一個連接會失效的問題

    使用WebSocket時,若多個頁面訪問同一個WebSocket連接可能會導(dǎo)致連接失效,遇到這個問題時,可以通過在SpringBoot中使用@ServerEndpoint注解并添加@Component來解決,出現(xiàn)連接錯誤通常是因?yàn)閃ebSocket連接接收到的是一個GET請求
    2024-09-09
  • spring boot2.0總結(jié)介紹

    spring boot2.0總結(jié)介紹

    今天小編就為大家分享一篇關(guān)于spring boot2.0總結(jié)介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java 由淺入深帶你掌握圖的遍歷

    Java 由淺入深帶你掌握圖的遍歷

    圖的遍歷是指,從給定圖中任意指定的頂點(diǎn)(稱為初始點(diǎn))出發(fā),按照某種搜索方法沿著圖的邊訪問圖中的所有頂點(diǎn),使每個頂點(diǎn)僅被訪問一次,這個過程稱為圖的遍歷。遍歷過程中得到的頂點(diǎn)序列稱為圖遍歷序列
    2022-03-03
  • 深入淺出理解Java Lambda表達(dá)式之四大核心函數(shù)式的用法與范例

    深入淺出理解Java Lambda表達(dá)式之四大核心函數(shù)式的用法與范例

    Lambda 表達(dá)式,也可稱為閉包,它是推動 Java 8 發(fā)布的最重要新特性。Lambda 允許把函數(shù)作為一個方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中)。使用 Lambda 表達(dá)式可以使代碼變的更加簡潔緊湊,今天小編帶你理解Lambda表達(dá)式之四大核心函數(shù)式的用法,感興趣的朋友快來看看吧
    2021-11-11

最新評論