mybatis plus自動生成代碼tinyint(1)自動轉(zhuǎn)換為Boolean的問題及解決
更新時間:2023年08月29日 09:18:39 作者:hank009
這篇文章主要介紹了mybatis plus自動生成代碼tinyint(1)自動轉(zhuǎn)換為Boolean的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
mybatis plus自動生成代碼tinyint(1)自動轉(zhuǎn)換為Boolean
說明下為什么會自動轉(zhuǎn)換為Boolean,是因為mybtisplus提供的默認的mysql類型轉(zhuǎn)換器MySqlTypeConvert上特別寫了這一段:

對癥下藥的解決辦法是重寫一個
在注入到配置里:
/**
* 自定義類型轉(zhuǎn)換
*/
class MySqlTypeConvertCustom extends MySqlTypeConvert implements ITypeConvert{
@Override
public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
String t = fieldType.toLowerCase();
if (t.contains("tinyint(1)")) {
return DbColumnType.INTEGER;
}
return super.processTypeConvert(globalConfig, fieldType);
}
}代碼生成器完整代碼
package com.wjj.application;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.IColumnType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.util.Arrays;
/**
* @author hank
*/
public class TestGen {
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir("D://");
gc.setFileOverride(true);
//不需要ActiveRecord特性的請改為false
gc.setActiveRecord(true);
// XML 二級緩存;
gc.setEnableCache(false);
// XML ResultMap
gc.setBaseResultMap(true);
// XML columnList
gc.setBaseColumnList(true);
gc.setAuthor("mybatisPlus");
gc.setDateType(DateType.ONLY_DATE);
gc.setMapperName("%sMapper");
gc.setXmlName("%sMapper");
gc.setServiceName("%sService");
gc.setServiceImplName("%sServiceImpl");
gc.setControllerName("%sController");
mpg.setGlobalConfig(gc);
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL);
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUrl("jdbc:mysql://xxxx/xxxxxx?tinyInt1isBit=false&useUnicode=true&characterEncoding=UTF-8&generateSimpleParameterMetadata=true");
dsc.setUsername("xxxx");
dsc.setPassword("xxxx");
dsc.setTypeConvert(new MySqlTypeConvertCustom());
mpg.setDataSource(dsc);
StrategyConfig strategy = new StrategyConfig();
strategy.setTablePrefix("saas_");
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setInclude("saas_medical_history", "saas_medical_history_describe", "saas_medical_history_attachment",
"saas_medical_history_diagnose", "saas_medical_history_prescription", "saas_medical_history_prescription_subjoin",
"saas_medical_history_prescription_chinese_list", "saas_medical_history_prescription_generic_list", "saas_medical_history_feature");
// 指定邏輯刪除字段
strategy.setLogicDeleteFieldName("is_deleted");
mpg.setStrategy(strategy);
PackageConfig pc = new PackageConfig();
pc.setParent("com.wjj.application");
String packageModule = ".medicalhistory";
pc.setController("controller"+packageModule);
pc.setService("service"+packageModule);
pc.setServiceImpl("service" + packageModule + ".impl");
pc.setMapper("mapper" + packageModule);
pc.setEntity("entity" + packageModule);
mpg.setPackageInfo(pc);
mpg.execute();
}
}
/**
* 自定義類型轉(zhuǎn)換
*/
class MySqlTypeConvertCustom extends MySqlTypeConvert implements ITypeConvert{
@Override
public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
String t = fieldType.toLowerCase();
if (t.contains("tinyint(1)")) {
return DbColumnType.INTEGER;
}
return super.processTypeConvert(globalConfig, fieldType);
}
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java8中CompletableFuture使用場景與實現(xiàn)原理
CompletableFuture是java8引入的新類,該類實現(xiàn)了Future接口和 CompletionStage接口,封裝了future、forkjoin相關(guān)類來執(zhí)行異步,這篇文章主要給大家介紹了關(guān)于Java8中CompletableFuture使用場景與實現(xiàn)原理的相關(guān)資料,需要的朋友可以參考下2022-02-02
SpringBoot2.0 中 HikariCP 數(shù)據(jù)庫連接池原理解析
這篇文章主要介紹了SpringBoot2.0 中 HikariCP 數(shù)據(jù)庫連接池原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
如何使用IntelliJ IDEA的HTTP Client進行接口驗證
這篇文章主要介紹了如何使用IntelliJ IDEA的HTTP Client進行接口驗證,本文給大家分享最新完美解決方案,感興趣的朋友跟隨小編一起看看吧2024-06-06

