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-04SpringBoot實(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-07SpringMVC如何把后臺(tái)文件打印到前臺(tái)
這篇文章主要介紹了SpringMVC如何把后臺(tái)文件打印到前臺(tái),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Java8中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-02Java ArrayList擴(kuò)容問(wèn)題實(shí)例詳解
這篇文章主要介紹了Java ArrayList擴(kuò)容問(wèn)題實(shí)例詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02SpringBoot2.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