MYSQL JDBC 之ResultSetMetaData获取列名 别名 useOldAliasMetadataBehavior
常规连接
-
jdbcurl如下
jdbc:mysql://localhost:3306/yzy_site
-
sql语句
select user_name as username,user_id as userid from user
-
java代码获取列名
ResultSet resultSet = sm.executeQuery(sql); //根据字段所在列数获取该字段的所在的表名 String sheetName = resultSet.getMetaData().getTableName(1); //获取sql查询字段的列数(个数) int columnCount = resultSet.getMetaData().getColumnCount(); // 向行和列中写数据 for (int col = 0; col < columnCount; col++) { //获取列数获取该列的字段名 String columnName = resultSet.getMetaData().getColumnName(col + 1); } while(resultSet.next()){ for (int col = 0; col < columnCount; col++) { //获取列数获取该列的字段名 String columnName = resultSet.getMetaData().getColumnName(col + 1); //根据字段名获取改行当前字段的数据 Object name = resultSet.getObject(columnName); } }
-
获取到的列名
user_name,user_id
经过测试,以上方法均无法获取别名。
经测试可用的修改方式
!!!!修改jdbcurl,如下
jdbc:mysql://localhost:3306/yzy_site?useOldAliasMetadataBehavior=true