使用原生JDBC动态解析并获取表格列名和数据的方法
更新时间:2023年08月22日 14:44:57 作者:飞翔的佩奇
这篇文章主要介绍了使用原生JDBC动态解析并获取表格列名和数据,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
应用场景
查询某张表,对于返回的执行结果,咱们并不需要知道他有哪些字段,字段名叫啥,直接通过原生JDBC动态的获取列名以及对应的数据。
其实就有点像遍历map集合,并不需要知道key叫啥,一样可以遍历出来:
Map<String,Object> map = Maps.newHashMap(); for (Map.Entry<String, Object> entry : map.entrySet()) { System.out.println(entry.getKey() + " : " + entry.getValue()); }
目标
将数据库查询出来的结果,存放到一个List<Map<String, Object>>集合中,方便后续批量将该集合的数据插入到其他地方
整干货
private List<Map<String, Object>> executeQuery(String sqlStr,String url,String username,String password) { Connection connection = DriverManager.getConnection(url, username, password); Statement statement = null; ResultSet resultSet = null; List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>(); try { statement = connection.createStatement(); resultSet = statement.executeQuery(sqlStr); final ResultSetMetaData rsmd = resultSet.getMetaData(); final String[] columnName = new String[rsmd.getColumnCount()]; for (int i = 1; i <= rsmd.getColumnCount(); ++i) { columnName[i - 1] = rsmd.getColumnLabel(i); } while (resultSet.next()) { LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>(); for (int j = 1; j <= rsmd.getColumnCount(); ++j) { if (resultSet.getObject(j) != null && !resultSet.getObject(j).equals("")) { String columnData = resultSet.getObject(j).toString().trim(); map.put(columnName[j - 1], columnData); } else { map.put(columnName[j - 1], ""); } } resultList.add(map); } } catch (SQLException e) { logger.error("SQL语句执行失败",e); }finally { if( null != resultSet ) { resultSet.close(); } if( null != statement ) { statement.close(); } if( null != connection ) { connection .close(); } } return resultList; }
到此这篇关于使用原生JDBC动态解析并获取表格列名和数据的文章就介绍到这了,更多相关JDBC获取表格列名和数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
IDEA中Spring Initializr没有Java8选项的解决办法
在使用IDEA中的Spring Initializr创建新项目时,Java 版本近可选择Java17,21 ,不能选择Java8;SpringBoot 版本也只有 3.x,所以本文给大家介绍了IDEA中Spring Initializr没有Java8选项的解决办法,需要的朋友可以参考下2024-06-06Java中IO流 RandomAccessFile类实例详解
这篇文章主要介绍了Java中IO流 RandomAccessFile类实例详解的相关资料,需要的朋友可以参考下2017-05-05springboot返回值转成JSONString的处理方式
这篇文章主要介绍了springboot返回值转成JSONString的处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06
最新评论