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

MyBatis和MyBatis Plus并存問題及解決

 更新時間:2024年07月25日 09:09:57   作者:qq_37362723  
最近需要使用MyBatis和MyBatis Plus,就會導致MyBatis和MyBatis Plus并存,本文主要介紹了MyBatis和MyBatis Plus并存問題及解決,具有一定的參考價值,感興趣的可以了解一下

前言

Mybatis-plus:Mybatis增強工具,只做增強,不作改變,簡化開發(fā),大大提高了開發(fā)效率。

經(jīng)常會碰到項目原先是采用MyBatis開發(fā),每次增加一張表,要配置實體類、xml文件等,操作上略顯復雜。因此,引入MyBatis Plus,對于新增加的表可以用MyBatis Plus來操作,而原有的表則保持不變,這樣就出現(xiàn)了MyBatis和MyBatis Plus并存的情況。下面以具體的例子來描述再一個原有項目的基礎上如何添加MyBatis Plus。

一、pom.xml文件修改

加入依賴:

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.4.1</version>
        </dependency>

二、application.yml文件修改

原有的MyBatis片段:

mybatis:
    mapper-locations: classpath:mapper/*.xml
    type-aliases-package: com.qqh.demo.mybatis.bean

只需要將mybatis修改為:mybatis-plus

mybatis-plus:
    mapper-locations: classpath:mapper/*.xml
    type-aliases-package: com.qqh.demo.mybatis.bean

三、新增實體類

@Builder
@Data
@TableName("`user`")
public class User {
    private Long id;
    private String name;
    private Integer age;
}

四、新增MyBatis Plus Mapper類

public interface UserMapper extends BaseMapper<User> {
}

五、新增UserMapperTest類

做完上述幾步改造,已經(jīng)算改造完成,這時候可以添加UserMapperTest測試類進行測試。新增加的測試類代碼如下:

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {
    @Autowired
    private UserMapper userMapper;

    /**
     * 查詢測試
     */
    @Test
    public void selectListTest() {
        List<User> userList = userMapper.selectList(null);
        Assert.assertEquals("user list size 不等于 5",5, userList.size());
    }
    @Test
    public void insertTest() {
        userMapper.insert(User.builder().name("qqh1").age(21).build());
        userMapper.insert(User.builder().name("qqh2").age(22).build());
        userMapper.insert(User.builder().name("qqh3").age(23).build());
        userMapper.insert(User.builder().name("qqh4").age(24).build());
        userMapper.insert(User.builder().name("qqh5").age(25).build());
    }
    @Test
    public void updateTest() {
        userMapper.updateById(User.builder().id(1751458136121847809L).name("xiaohong1-update").build());
    }
    @Test
    public void deleteTest() {
        userMapper.deleteById(User.builder().id(1751458136121847809L).build());
    }
}

六、執(zhí)行測試方法,碰到問題

執(zhí)行測試方法:insertTest,啟動時出現(xiàn)如下問題:

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    com.baomidou.mybatisplus.core.MybatisMapperAnnotationBuilder$AnnotationWrapper.<init>(MybatisMapperAnnotationBuilder.java:686)

The following method did not exist:

    org.apache.ibatis.annotations.Select.databaseId()Ljava/lang/String;

The method's class, org.apache.ibatis.annotations.Select, is available from the following locations:

    jar:file:/D:/mavenRepository/org/mybatis/mybatis/3.5.3/mybatis-3.5.3.jar!/org/apache/ibatis/annotations/Select.class

It was loaded from the following location:

    file:/D:/mavenRepository/org/mybatis/mybatis/3.5.3/mybatis-3.5.3.jar

問題排查:

1.錯誤分析

根據(jù)上述錯誤信息,發(fā)現(xiàn)集中在mybatis-3.5.3.jar,懷疑是jar包版本沖突引起的。

2.依賴分析

對pom.xml中的依賴進行分析,如下圖,發(fā)現(xiàn)mybatis-plus-boot-starter和mybatis-spring-boot-starter引用的mybatis包版本不一致。

在這里插入圖片描述

3.解決

將mybatis-spring-boot-starter版本從2.1.1升級到2.3.1,使其使用的mybatis版本和mybatis-plus-boot-starter所使用的mybatis版本保持一致,再次運行測試方法insertTest,執(zhí)行成功。查看數(shù)據(jù)庫,如下圖,數(shù)據(jù)已正確插入。

在這里插入圖片描述

總結

MyBatis Plus確實可以大幅提高開發(fā)效率,上例中的UserMapper不需要寫1行代碼,即可實現(xiàn)增刪改查。

到此這篇關于MyBatis和MyBatis Plus并存問題及解決的文章就介紹到這了,更多相關MyBatis和MyBatis Plus并存內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

  • mybatis 一對一、一對多和多對多查詢實例代碼

    mybatis 一對一、一對多和多對多查詢實例代碼

    這篇文章主要介紹了mybatis 一對一、一對多和多對多查詢的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • 如何使用Jackson和JSON Pointer查詢解析任何JSON節(jié)點

    如何使用Jackson和JSON Pointer查詢解析任何JSON節(jié)點

    本文介紹了JSON Pointer是字符串表達式,可以非常方便解析復雜JSON節(jié)點值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Spring Cloud服務入口Gateway的介紹和使用問題小結

    Spring Cloud服務入口Gateway的介紹和使用問題小結

    Spring Cloud Gateway是Spring Cloud的?個全新的API?關項?, 基于Spring + SpringBoot等技術開發(fā), ?的是為了替換掉Zuul,這篇文章主要介紹了Spring Cloud服務入口Gateway的介紹和使用問題小結,需要的朋友可以參考下
    2025-03-03
  • Spring?Aware接口示例代碼詳解

    Spring?Aware接口示例代碼詳解

    Spring的依賴注入的最大亮點是所有的Bean對Spring容器的存在是沒有意識的,我們可以將Spring容器換成其他的容器,Spring容器中的Bean的耦合度因此也是極低的,本文給大家介紹Spring?Aware接口示例代碼詳解,感興趣的朋友一起看看吧
    2022-02-02
  • JavaWeb禁止瀏覽器緩存當前Web頁面的方法

    JavaWeb禁止瀏覽器緩存當前Web頁面的方法

    所謂瀏覽器緩存,是指當?shù)谝淮卧L問網(wǎng)頁時,瀏覽器會將這些網(wǎng)頁緩存到本地,當下一次再訪問這些被緩存的網(wǎng)頁時,瀏覽器就會直接從本地讀取這些網(wǎng)頁的內容,而無需再從網(wǎng)絡上獲取
    2017-11-11
  • Java 垃圾回收機制詳解及實例代碼

    Java 垃圾回收機制詳解及實例代碼

    這篇文章主要介紹了 Java 垃圾回收機制詳解及實例代碼的相關資料,需要的朋友可以參考下
    2017-02-02
  • Failed to execute goal org...的解決辦法

    Failed to execute goal org...的解決辦法

    這篇文章主要介紹了Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1的解決辦法的相關資料,需要的朋友可以參考下
    2017-06-06
  • 使用SpringBoot中web項目推薦目錄結構的問題

    使用SpringBoot中web項目推薦目錄結構的問題

    這篇文章主要介紹了SpringBoot中web項目推薦目錄結構的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • Java 添加數(shù)字簽名到excel及檢測,刪除簽名

    Java 添加數(shù)字簽名到excel及檢測,刪除簽名

    這篇文章主要介紹了Java 添加數(shù)字簽名到excel及檢測,刪除簽名的方法,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下
    2021-04-04
  • 利用JDBC的PrepareStatement打印真實SQL的方法詳解

    利用JDBC的PrepareStatement打印真實SQL的方法詳解

    PreparedStatement是預編譯的,對于批量處理可以大大提高效率. 也叫JDBC存儲過程,下面這篇文章主要給大家介紹了關于利用JDBC的PrepareStatement打印真實SQL的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07

最新評論