jdbc 获取 表中 字段的长度

参考:

使用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);
}

 

以上仅为个人使用的代码片段,可能不够严谨,仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值