1. 程式人生 > 程式設計 >解決mybatis-generator生成Mapper檔案沒有Selective結尾的問題

解決mybatis-generator生成Mapper檔案沒有Selective結尾的問題

一開始從網上找的generatorConfig.xml內容如下:

<!-- 配置生成器 -->
<generatorConfiguration>
  <!--執行generator外掛生成檔案的命令: call mvn mybatis-generator:generate -e -->
  <!-- 引入配置檔案 -->
  <properties resource="mybatis-generator/mybatisGeneratorInit.properties"/>

  <!-- 一個數據庫一個context -->
  <context id="MysqlTables" targetRuntime="MyBatis3Simple">
    <!-- 自動識別資料庫關鍵字,預設false,如果設定為true,根據SqlReservedWords中定義的關鍵字列表;
    一般保留預設值,遇到資料庫關鍵字(Java關鍵字),使用columnOverride覆蓋 -->
    <property name="autoDelimitKeywords" value="true" />
    <!-- 生成的Java檔案的編碼 -->
    <property name="javaFileEncoding" value="utf-8" />
    <!-- beginningDelimiter和endingDelimiter:指明資料庫的用於標記資料庫物件名的符號,比如ORACLE就是雙引號,MYSQL預設是`反引號; -->
    <property name="beginningDelimiter" value="`" />
    <property name="endingDelimiter" value="`" />
  ...
  </context>
  ...
</generatorConfiguration>

發現執行生成程式碼的maven外掛後,Mapper.java和Mapper.xml中都沒有Selective結尾的方法(insertSelective、updateByPrimaryKeySelective)。

後來發現是context標籤的targetRuntime屬性的原因,將其設定為MyBatis3即可。

補充知識:MyBatis Plus中 selectPage 方法。返回的total為空問題

我記得我在哪裡看到。好像哪個版本之後是不需要加分頁外掛的。

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class MyBatisPlusConfig {
 
  @Bean
  public PaginationInterceptor paginationInterceptor() {
    PaginationInterceptor page = new PaginationInterceptor();
    page.setDialectType("mysql");
    return page;
  }
}

加上這個類問題基本就解決了

如果沒解決。看一下專案中有沒有pagehelper的依賴。如果有的話去掉就好了。

以上這篇解決mybatis-generator生成Mapper檔案沒有Selective結尾的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。