使用NetBeans 12.5查看Java ResultSet变量中的数据库查询数据
NetBeans查看ResultSet实际查询数据的解决方案
ResultSet是JDBC定义的游标接口,默认不会一次性加载全部查询结果到内存,所以NetBeans监视窗口默认仅展示对象的树形结构,你可以通过以下三种方式查看实际数据:
- 展开监视窗口的内部缓存节点
不同JDBC驱动的节点命名有差异,以MySQL驱动为例,依次展开ResultSet变量下的rowData->rows节点,即可看到已经拉取到本地的查询行数据。注意:仅ResultSet游标已经遍历过的行才会在该节点下展示,未遍历的行不会预加载显示。 - 自定义监视表达式
在监视窗口新增自定义监视项,直接填写你需要查看的取值语句即可实时获取当前行的对应字段值,示例:- 取当前行第一个字段的字符串值:
rs.getString(1) - 取当前行
user_id字段的整数值:rs.getInt("user_id")
- 取当前行第一个字段的字符串值:
- 临时添加遍历打印代码
如果需要一次性查看全量查询结果,可以在获取ResultSet后临时添加如下调试代码,在控制台输出完整的表结构和数据:// 临时调试代码,确认结果后请删除 if (rs != null) { // *若你创建Statement时用的是默认向前只读类型,遍历后无法回滚游标,后续业务代码无法再使用该ResultSet* // 需回滚游标的话,创建Statement时指定参数:conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY) ResultSetMetaData metaData = rs.getMetaData(); int columnCount = metaData.getColumnCount(); // 打印列名 for (int i = 1; i <= columnCount; i++) { System.out.print(metaData.getColumnName(i) + "\t"); } System.out.println(); // 打印所有行数据 while (rs.next()) { for (int i = 1; i <= columnCount; i++) { System.out.print(rs.getObject(i) + "\t"); } System.out.println(); } // 可滚动ResultSet可执行以下代码将游标移回初始位置,不影响后续业务代码使用 // rs.beforeFirst(); }
内容的提问来源于stack exchange,提问作者DES5
相关产品推荐
相关产品推荐

