参考:
使用JDBC连接数据库获取表字段的注释信息:https://my.oschina.net/Thinkeryjgfn/blog/169384
在实现一个代码生成器的时候,遇到过一个问题,需要输出字段的长度
然后发现数字类型的字段,无符号的会少一个长度,百度 goole半天,没搞明白怎么去判断字段,是不是无符号的类型,当时就搁置在一边了
今天在使用代码生成器时突然发现了一个字段设置成了无符号类型 " BIGINT UNSIGNED",(原来同事设置了一个字段是无符号的,我之前都是用的有符号的)
瞬间有了灵感,获取字段长度的功能可以实现了
// 字段长度
Integer fieldLength = Integer.valueOf(rs.getString("COLUMN_SIZE"));
// 字段类型
String dbType = rs.getString("TYPE_NAME");
if (dbType.contains(" UNSIGNED")) {
// 无符号
dbType = dbType.replace(" UNSIGNED", "");
} else {
// 有符号
if (isNumberType(dbType)) {
// 数字类型
fieldLength = fieldLength + 1;
}
}
private static boolean isNumberType(String dbType) {
String[] arr = { "NUMERIC", "DECIMAL", "TINYINT", "SMALLINT", "INTEGER", "BIGINT", "REAL", "FLOAT", "DOUBLE" };
return Arrays.asList(arr).contains(dbType);
}
以上仅为个人使用的代码片段,可能不够严谨,仅供参考