mybatis-generator-gui
mybatis-generator-gui copied to clipboard
针对BIGINT UNSIGNED类型字段,生成的Mapper文件jdbcType错误
问题描述
在mysql数据库中,表中字段类型为bigint(20) unsigned时,生成的Mapper文件jdbcType=BIGINT UNSIGNED。导致应用加载Mapper配置失败,无法启动。
-
建表语句

-
GUI中显示的JDBC TYPE

-
Mapper文件中错误的jdbcType

期望结果
针对类似的字段数据类型,需要根据java.sql.Types转换为实际的jdbcType。
bigint(20) unsigned在mapper中的jdbcType应该为BIGINT
问题原因
- 加载定制列数据时,通过
DbUtil.getTableColumns()获取列JDBC TYPE的过程中,直接根据rs.getString("TYPE_NAME")获取到的Type名称作为JDBC TYPE,并覆盖mybatis-generator生成的列配置
修复方案
DbUtil.getTableColumns()设置字段jdbc type时,使用mybatis generator提供的JavaTypeResolverDefaultImpl进行转换