博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis plus 代码生成器
阅读量:5827 次
发布时间:2019-06-18

本文共 5284 字,大约阅读时间需要 17 分钟。

org.apache.velocity
velocity-engine-core
最新版本
org.freemarker
freemarker
最新版本
com.baomidou
mybatis-plus
最新版本
package com.management.manage;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.config.DataSourceConfig;import com.baomidou.mybatisplus.generator.config.GlobalConfig;import com.baomidou.mybatisplus.generator.config.PackageConfig;import com.baomidou.mybatisplus.generator.config.StrategyConfig;import com.baomidou.mybatisplus.generator.config.rules.DbType;import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;import com.management.manage.converts.OracleTypeConvert;import org.junit.Test;/** * 

f * 测试生成代码 *

* * @author K神 * @date 2017/12/18 */public class GeneratorServiceEntity { @Test public void generateCode() { String packageName = "com.baomidou.springboot"; boolean serviceNameStartWithI = false;//user -> UserService, 设置成true: user -> IUserService generateByTables(serviceNameStartWithI, packageName, "POLICE_QA_QBANK"); } private void generateByTables(boolean serviceNameStartWithI, String packageName, String... tableNames) { GlobalConfig config = new GlobalConfig(); String dbUrl = "jdbc:oracle:thin:@101.37.149.47:11521:orcl"; DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setDbType(DbType.ORACLE) .setUrl(dbUrl) .setUsername("js_gongan") .setPassword("HLKJ#jsga2018") .setTypeConvert(new OracleTypeConvert())//自定义数据库类型转换 .setDriverName("oracle.jdbc.driver.OracleDriver"); StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig .setCapitalMode(true) .setEntityLombokModel(false) .setDbColumnUnderline(false) .setNaming(NamingStrategy.underline_to_camel) .setRestControllerStyle(true) .entityTableFieldAnnotationEnable(true)//是否生成实体时,生成字段注解 .setInclude(tableNames);//修改替换成你需要的表名,多个表名传数组 config.setActiveRecord(false) .setAuthor("赵炎") .setOutputDir("E:\\codeGen") .setFileOverride(true); if (!serviceNameStartWithI) { config.setServiceName("%sService"); } new AutoGenerator().setGlobalConfig(config) .setDataSource(dataSourceConfig) .setStrategy(strategyConfig) .setPackageInfo( new PackageConfig() .setParent(packageName) .setController("controller") .setEntity("entity") ).execute(); } private void generateByTables(String packageName, String... tableNames) { generateByTables(true, packageName, tableNames); }}
package com.management.manage.converts;import com.baomidou.mybatisplus.generator.config.ITypeConvert;import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;//@Componentpublic class OracleTypeConvert implements ITypeConvert {    @Override    public DbColumnType processTypeConvert(String s) {        String t = s.toUpperCase();        if (t.contains("CHAR")) {            return DbColumnType.STRING;        } else if (t.contains("DATE") || t.contains("TIMESTAMP")) {            return DbColumnType.DATE;        } else if (t.contains("NUMBER")) {            if (t.matches("NUMBER\\(+\\d\\)")) {                return DbColumnType.INTEGER;            } else if (t.matches("NUMBER\\(+\\d{2}+\\)")) {                return DbColumnType.LONG;            }            return DbColumnType.INTEGER;        } else if (t.contains("FLOAT")) {            return DbColumnType.FLOAT;        } else if (t.contains("clob")) {            return DbColumnType.CLOB;        } else if (t.contains("BLOB")) {            return DbColumnType.OBJECT;        } else if (t.contains("binary")) {            return DbColumnType.BYTE_ARRAY;        } else if (t.contains("RAW")) {            return DbColumnType.BYTE_ARRAY;        }        return DbColumnType.STRING;    }}

 

package com.management.manage.common.handler;import com.baomidou.mybatisplus.mapper.MetaObjectHandler;import org.apache.ibatis.reflection.MetaObject;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.Date;import java.util.Objects;/** *  注入公共字段自动填充,任选注入方式即可 *///@Componentpublic class MyMetaObjectHandler extends MetaObjectHandler {    protected final static Logger logger = LoggerFactory.getLogger(MyMetaObjectHandler.class);    @Override    public void insertFill(MetaObject metaObject) {        Object isDelete = getFieldValByName("isdelete", metaObject);        if(Objects.isNull(isDelete)){            setFieldValByName("isdelete",0, metaObject);//mybatis-plus版本2.0.9+        }    }    @Override    public void updateFill(MetaObject metaObject) {        logger.info("更新的时候干点不可描述的事情");        setFieldValByName("updatetime", new Date(), metaObject);    }}

 

转载于:https://www.cnblogs.com/zhaoyan001/p/9089878.html

你可能感兴趣的文章
python mysqlDB
查看>>
UVALive 3942 Remember the Word Tire+DP
查看>>
从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~目录...
查看>>
被需求搞的一塌糊涂,怎么办?
查看>>
c_数据结构_队的实现
查看>>
jquery 选择器总结
查看>>
Qt设置背景图片
查看>>
【阿里云文档】常用文档整理
查看>>
java中的Volatile关键字
查看>>
前端自定义图标
查看>>
Vagrant的一个BUG - 不支持'change_host_name'
查看>>
实验二
查看>>
独立开发一个云(PaaS)的核心要素, Go, Go, Go!!!
查看>>
MyBatis使用DEMO及cache的使用心得
查看>>
网站文章如何能自动判定是抄袭?一种算法和实践架构剖析
查看>>
【OpenCV学习】滚动条
查看>>
ofo用科技引领行业进入4.0时代 用户粘性连续8个月远甩摩拜
查看>>
兰州青年志愿者“中西合璧”玩快闪 温暖旅客回家路
查看>>
计划10年建10万廉价屋 新西兰政府:比想象中难
查看>>
甘肃发首版《3D打印职业教育教材》:校企合作育专才
查看>>