背景
这是之前记录的一篇日志,那时在做一个政府类项目,表字段名称是汉语拼音缩写,往往都是大表,十几二十几个字段都是家常便饭,读起来很不方便,于是想着每次写sql查询时都将表注释显示为字段名称,这样就方便知道每个字段是什么含义了,于是开始研究,怎么自动生成sql语句并且将字段注释显示为title,想要的效果如下:
效果如上图:就是查询结果中将字段注释显示成 title,方便知道是啥意思,因为项目涉密的原因,关键信息打了码
1.、先看这个sql语句的效果
SELECT t.* FROM information_schema.`TABLES` t WHERE TABLE_SCHEMA = 'db_name';
可以看到通过information_schema.TABLES
和TABLE_SCHEMA = 'xxx'
即可查询出表的属性信息,而Mybatis Generator
在生成的时候填上表名即可以自动生成类及注释(通过这个sql可以拿到注释)
2、 通过下面这个sql可以发现,可以拿到表的每个字段,通过此可以生成表的字段及注释
SELECT t.* FROM information_schema.`COLUMNS` t WHERE TABLE_SCHEMA = 'db_name' AND t.`TABLE_NAME` = 'table_name';
据此,能拿到表的信息以及表的字段信息,则可以据此去扩展,生成表实体及xml,思路大致有了,有空可以看一下MybatisGenerator的实现原理,它可能也是同样的实现方式,只是他做的全面一些;
3、根据上述思路实现代码
package com.yinchd.web.dao;
import com.yinchd.web.model.AjInfo;