mybatis-generator-gui icon indicating copy to clipboard operation
mybatis-generator-gui copied to clipboard

针对BIGINT UNSIGNED类型字段,生成的Mapper文件jdbcType错误

Open sagexueqi opened this issue 4 years ago • 0 comments

问题描述 在mysql数据库中,表中字段类型为bigint(20) unsigned时,生成的Mapper文件jdbcType=BIGINT UNSIGNED。导致应用加载Mapper配置失败,无法启动。

  • 建表语句 image

  • GUI中显示的JDBC TYPE image

  • Mapper文件中错误的jdbcType image

期望结果 针对类似的字段数据类型,需要根据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进行转换

sagexueqi avatar Jul 05 '21 14:07 sagexueqi