最近在使用appache dbutils 通过mysql jdbc连接数据库时出现别名识别错误,错误问题描述描述如下:
例如sql :select user_no userno from user;
通过dbutils 获取到Map 中则此时 map中的key值为 user_no 并非 userno 然而在 oracle数据库可以正确获得 key 值为user_no
通过问题跟踪:
jdbc 连接mysql时
ResultSetMetaData ret = rs.getMetaData();
String a1 = ret.getColumnLabel(1);
String a2 = ret.getColumnName(1);
a1值为userno;
a2值为user_no;
jdbc 连接oracle时
ResultSetMetaData ret = rs.getMetaData();
String a1 = ret.getColumnLabel(1);
String a2 = ret.getColumnName(1);
a1值为userno;
a2值为userno;
dbutils 中方法在组织 Map对象 key时 使用的getColumnName 方法,就会显现上述错误;
推测可能与mysql jdbc 版本有关;
建议解决办法修改dbutils中getColumnName 为getColumnLabel来组织对象;
如果条件允许时,建议直接使用 jdbc 操作也是比较方便,尽管dbutil 比较好用,在组织T 对象时还是效率比较低的。
关于 mysql 别名问题
最新推荐文章于 2022-10-15 17:30:31 发布