【分享】解决JFinal-Mysql下代码生成无法获取到数据库表注释信息

问题:

最近使用JBolt极速开发平台的可视化设计模块,做新项目的代码生成工作。客户demo机器上的mysql版本是5.x,结果运行JBolt可视化设计器检索业务表的时候,表注释没出来:

faea8175d9bd611baf48e060b43dcd4.jpg


正常情况下,JBolt默认都是Mysql8.x下开发,效果是这样的:


5106eef7bf2fa4e13527e1a39742359.jpg


跟踪了一下JDBC底层getTabes方法,发现一个jdbc url上的配置参数,影响了这个结果:


结论:

在Mysql5.x版本下,使用jdbc的getTables 底层拿到的表数据里你是获取不到表注释信息的,因为5.x版本数据库中 useInformationSchema=false 默认 值是false,jdbcurl上 设置 useInformationSchema=true 就可以拿到了。


在Mysql8.x之后 useInformationSchema默认值是true,所以在mysql8下做代码生成时,可以默认获取到表注释信息。


那么,在JDBCURL上增加一个参数吧: useInformationSchema=true

jdbc_url =  jdbc:mysql://127.0.0.1:3306/jbolt?characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true&autoReconnect=true&zeroDateTimeBehavior=convertToNull&databaseTerm=SCHEMA&nullDatabaseMeansCurrent=true&nullCatalogMeansCurrent=true&useInformationSchema=true&serverTimezone=Asia/Shanghai


再去看运行效果:

image.png


OK!!


企业用JFinal做极速开发,选JBolt不迷路!

JBolt极速开发平台,JFinal社区700+企业共同的选择,省心、省事儿、极速开发!

JFinal极速开发,30秒一个CRUD,为开发者节约更多时间,陪恋人家人和朋友

评论区

JFinal

2022-09-28 20:51

很多同学需要生成 table 注释,非常有用的分享,收藏 + 点赞一波

热门分享

扫码入社