最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

Mapper.xml相關使用

命名空間(Namespaces)

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

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

出于長遠考慮,使用命名空間,并將它置于合適的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對所有的命名配置元素(包括語句,結果映射,緩存等)使用了如下的命名解析規(guī)則。

  • 完全限定名(比如"com.mypackage.MyMapper.selectAllThings")將被直接查找并且找到即用。
  • 短名稱(比如"selectAllThings")如果全局唯一也可以作為一個單獨的引用。如果不唯一,有兩個或兩個以上的相同名稱(比如“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命名空間錯誤

項目場景

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

問題描述

運行測試添加方法的時候報錯:

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'.

原因分析

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

在這里插入圖片描述

解決方案

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

修改前:我用的是實體類

在這里插入圖片描述

修改后mapper接口類

在這里插入圖片描述

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

相關文章

  • Jmeter跨線程組共享cookie過程圖解

    Jmeter跨線程組共享cookie過程圖解

    這篇文章主要介紹了Jmeter跨線程組共享cookie過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Rxjava+Retrofit+MVP實現(xiàn)購物車功能

    Rxjava+Retrofit+MVP實現(xiàn)購物車功能

    這篇文章主要為大家詳細介紹了Rxjava+Retrofit+MVP實現(xiàn)購物車功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Java實戰(zhàn)個人博客系統(tǒng)的實現(xiàn)流程

    Java實戰(zhàn)個人博客系統(tǒng)的實現(xiàn)流程

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+springboot+mybatis+redis+vue+elementui+Mysql實現(xiàn)一個個人博客系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2022-01-01
  • SpringBoot攔截器與文件上傳實現(xiàn)方法與源碼分析

    SpringBoot攔截器與文件上傳實現(xiàn)方法與源碼分析

    其實spring boot攔截器的配置方式和springMVC差不多,只有一些小的改變需要注意下就ok了。本文主要給大家介紹了關于如何在Springboot實現(xiàn)登陸攔截器與文件上傳功能,需要的朋友可以參考下
    2022-10-10
  • SpringBoot自定義注解解決公共字段填充問題解決

    SpringBoot自定義注解解決公共字段填充問題解決

    修改時間,修改人等字段時,這些字段屬于公共字段,本文主要介紹了SpringBoot自定義注解解決公共字段填充問題解決,使用它的好處就是可以統(tǒng)一對這些字段進行處理,感興趣的可以了解一下
    2024-07-07
  • 使用Spring Initializr創(chuàng)建Spring Boot項目沒有JDK1.8的解決辦法

    使用Spring Initializr創(chuàng)建Spring Boot項目沒有JDK1.8的解決辦法

    很久沒創(chuàng)建springboot項目,今天使用idea的Spring Initializr 創(chuàng)建 Spring Boot項目時,發(fā)現(xiàn)java版本里,無法選擇jdk1.8,只有17、21、22,所以本文介紹了使用Spring Initializr創(chuàng)建Spring Boot項目沒有JDK1.8的解決辦法,需要的朋友可以參考下
    2024-06-06
  • 分析xxljob登入功能集成OIDC的統(tǒng)一認證

    分析xxljob登入功能集成OIDC的統(tǒng)一認證

    這篇文章主要為大家介紹分析xxljob登入功能集成OIDC的統(tǒng)一認證的詳解說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • spring aop之@AfterReturning不生效問題及解決

    spring aop之@AfterReturning不生效問題及解決

    這篇文章主要介紹了spring aop之@AfterReturning不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • freemarker簡介_動力節(jié)點Java學院整理

    freemarker簡介_動力節(jié)點Java學院整理

    FreeMarker是一個模板引擎,一個基于模板生成文本輸出的通用工具,使用純Java編寫,有興趣的可以了解一下
    2017-08-08
  • Java隊列同步器之CountDownLatch實現(xiàn)詳解

    Java隊列同步器之CountDownLatch實現(xiàn)詳解

    這篇文章主要介紹了Java隊列同步器之CountDownLatch實現(xiàn)詳解,CountDownLatch是一個同步工具類,它允許一個或多個線程一直等待,直到其他線程執(zhí)行完后再執(zhí)行,例如,應用程序的主線程希望在負責啟動框架服務的線程已經(jīng)啟動所有框架服務之后執(zhí)行,需要的朋友可以參考下
    2023-12-12

最新評論

德惠市| 浏阳市| 旺苍县| 柳林县| 金坛市| 华亭县| 乡宁县| 太谷县| 临沂市| 涟水县| 银川市| 岚皋县| 金昌市| 乐昌市| 清水河县| 东光县| 藁城市| 沽源县| 林甸县| 芦山县| 凉城县| 鄂尔多斯市| 唐山市| 宾川县| 都昌县| 屏南县| 沾益县| 林州市| 邵阳县| 宜良县| 麦盖提县| 忻州市| 清水河县| 偏关县| 临城县| 尉犁县| 泽库县| 五华县| 松原市| 会昌县| 孟村|