mybatis plus自動(dòng)生成代碼tinyint(1)自動(dòng)轉(zhuǎn)換為Boolean的問(wèn)題及解決
mybatis plus自動(dòng)生成代碼tinyint(1)自動(dòng)轉(zhuǎn)換為Boolean
說(shuō)明下為什么會(huì)自動(dòng)轉(zhuǎn)換為Boolean,是因?yàn)閙ybtisplus提供的默認(rèn)的mysql類(lèi)型轉(zhuǎn)換器MySqlTypeConvert上特別寫(xiě)了這一段:

對(duì)癥下藥的解決辦法是重寫(xiě)一個(gè)
在注入到配置里:
/**
* 自定義類(lèi)型轉(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特性的請(qǐng)改為false
gc.setActiveRecord(true);
// XML 二級(jí)緩存;
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();
}
}
/**
* 自定義類(lèi)型轉(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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java動(dòng)態(tài)代理語(yǔ)法Proxy類(lèi)原理詳解
這篇文章主要介紹了Java動(dòng)態(tài)代理語(yǔ)法Proxy類(lèi)原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
SpringBoot實(shí)現(xiàn)掃碼登錄的項(xiàng)目實(shí)踐
本文主要介紹了SpringBoot實(shí)現(xiàn)掃碼登錄的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
SpringMVC如何把后臺(tái)文件打印到前臺(tái)
這篇文章主要介紹了SpringMVC如何把后臺(tái)文件打印到前臺(tái),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Java8中CompletableFuture使用場(chǎng)景與實(shí)現(xiàn)原理
CompletableFuture是java8引入的新類(lèi),該類(lèi)實(shí)現(xiàn)了Future接口和 CompletionStage接口,封裝了future、forkjoin相關(guān)類(lèi)來(lái)執(zhí)行異步,這篇文章主要給大家介紹了關(guān)于Java8中CompletableFuture使用場(chǎng)景與實(shí)現(xiàn)原理的相關(guān)資料,需要的朋友可以參考下2022-02-02
Java ArrayList擴(kuò)容問(wèn)題實(shí)例詳解
這篇文章主要介紹了Java ArrayList擴(kuò)容問(wèn)題實(shí)例詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02
SpringBoot2.0 中 HikariCP 數(shù)據(jù)庫(kù)連接池原理解析
這篇文章主要介紹了SpringBoot2.0 中 HikariCP 數(shù)據(jù)庫(kù)連接池原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
如何使用IntelliJ IDEA的HTTP Client進(jìn)行接口驗(yàn)證
這篇文章主要介紹了如何使用IntelliJ IDEA的HTTP Client進(jìn)行接口驗(yàn)證,本文給大家分享最新完美解決方案,感興趣的朋友跟隨小編一起看看吧2024-06-06

