MyBatis Generator简介
发布日期:2021-05-16 10:23:19
浏览次数:11
分类:技术文章
本文共 2834 字,大约阅读时间需要 9 分钟。
前言
《》给我们提供了ORM解决方案,MyBatis Generator 是MyBatis的快速代码生成辅助工具。每个公司可以根据自己的代码规范,统一生成基础代码。
快速入门
通过以下demo可以直接java方式运行
String genCfg = "mbgConfiguration.xml"; File configFile = new File(GenMain.class.getResource(genCfg).getFile()); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = null; myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null);
依赖
org.mybatis.generator mybatis-generator-core 1.4.0 mysql mysql-connector-java 8.0.16
配置
核心配置文件
XML配置介绍
<context>
一个context可以看作一个数据库环境。 可以在 元素内列出多个元素, 以允许在MyBatis Generator的同一运行中从不同的数据库或具有不同的生成参数生成对象。
<connectionFactory> 或者 <jdbcConnection>
设置数据库连接。
<javaClientGenerator>
生成crud,可以设置生成的文件放在哪个包
<javaModelGenerator>
生成entity,可以设置生成的文件放在哪个包 一些主要功能
是否生成全字段构造函数 是否immutable,将决定是否生成set方法 set方法是否自动trim<sqlMapGenerator>
用于定义SQL映射生成器的属性,当选择的javaClientGenerator需要XML时,此元素才是元素的必需子元素
<javaTypeResolver>
用于定义 Java 类型解析器的属性。Java 类型解析器决定了 数据库列 与 Java类型的对应关系
<commentGenerator>
定义注释生成器的属性
<domainObjectRenamingRule>
设置entity类名生成规则
比如当库中的所有表都有一个公共前缀,但是我们的entity名字里面不想要这个前缀<table>
指定表,为该表生成代码(entity, crud方法, mapper)
一些主要配置项:1. entity的名字 2. 是否使用真实列名作为属性名(否则就用驼峰) 3. 是否生成根据主键的select|delete|update4. 是否生成插入语句 5. 是否允许主键查询 6. 是否immutable,将决定是否生成set方法
- <generatedKey> 用于指定自动生成的字段(比如自增id) 如果指定此元素,则MyBatis Generator(MBG)将在SQL映射的生成的元素内生成一个适当的 元素(根据sqlStatement不同而不同),insert的时候会把这个值赋值到对象中。
MySql -> SELECT LAST_INSERT_ID()
- <columnOverride> property设置java属性名(一般不需要在columnOverride这个标签里面设置,可以在table标签统一设置成驼峰) 制定列与属性的映射关系 isGeneratedAlways=true 生成的insert update方法就不会去设置这个字段的值。 typeHandler当默认的类型转换不能满足要求的时候可以自定义类型转换
- <ignoreColumn> 忽略某列,所有生成的代码里面都不会包含这列。
- <ignoreColumnsByRegex> 根据正则忽略列,可以指定except,这样正则就可以写得更加简单了。
- <columnRenamingRule> 设置entity中属性名生成规则 比如当表中的所有列都有一个公共前缀,但是我们的entity里面不想要这个前缀。
自定义改造
- 乐观锁支持(version字段)
- 逻辑删除(deleted字段)
- BLOB字段支持
- 批量操作
- 自增主键
请移步github《》作者写的简单。
主要参考
《》
《》 《》转载地址:https://blog.csdn.net/y3over/article/details/113359687 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月22日 02时14分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【C++】攻克哈希表(unordered_map)
2019-04-27
转:【答学员问】- 该如何根据岗位学习相关技能
2019-04-27
转:【答学员问】有什么经验教训,是你在面试很多次之后才知道的?
2019-04-27
消息队列:解耦、异步、削峰,现有MQ对比以及新手入门该如何选择MQ?
2019-04-27
【奇技淫巧】-- 三角形最小路径和
2019-04-27
【小技巧】argc和argv的用法
2019-04-27
学不下去了怎么办?
2019-04-27
二叉树的前中后序遍历(迭代法)(带动画)
2019-04-27
【小技巧】【XShell】【Xftp】Windows桌面与Linux虚拟机互传文件
2019-04-27
【redis入门】Centos下安装redis
2019-04-27
【redis入门】redis安装后相关知识串讲
2019-04-27
【redis】来吧,展示一下redis 发布-订阅模式
2019-04-27
当下热点词再学:redis缓存预热、更新、降级,限流
2019-04-27
【redis6.0.6】redis源码慢慢学,慢慢看 -- 第五天:adlist
2019-04-27
别抖,OK? 操作系统抖动现象、网络抖动与延迟、函数抖动之防抖与节流,串讲
2019-04-27
通过域名获取主机IP -- struct addrinfo
2019-04-27
【C++】算法集锦(8):从两数和问题拓展到一百数和问题
2019-04-27