Whoami• 2022-01-24 15:04 采纳率: 50%
浏览 110

resultset.next 有重复情况

用DatabaseMetaData.getColumns获取了Oracle数据库的某个表Column的属性,
用next输出时所有Column的属性已经打印完了,
但是他还会至少多循环两遍,所有的Column的属性从新打一遍

比如一个表两个字段,执行一遍,按正常来说有两个打印,
但是有四个,重复两遍

特别奇怪的事有些表没有这种情况

请问这是什么情况?

@Override
    public void getColumnsInfo() {

        // 创建一个数据库连接
        Connection connection = null;
        // 创建一个结果集对象
        ResultSet rs = null;

        OperateOracle oracle = new OperateOracleImpl();

        try {
            connection = oracle.getOracleConnection();

            DatabaseMetaData metaData = connection.getMetaData();
            rs = metaData.getColumns(null,null,tableName,null);

            while (rs.next()){

                String isPk = "false";
                String tableName_ = rs.getString("TABLE_NAME");
                String columnName = rs.getString("COLUMN_NAME");
                int dataType = rs.getInt("DATA_TYPE");
                String isAutoincrement = rs.getString("IS_AUTOINCREMENT") == "NO" ? "false" : "true";
                int columnSize = rs.getInt("COLUMN_SIZE");
                String isNullable = rs.getString("IS_NULLABLE") == "NO" ? "false" : "true";
                String remarks = rs.getString("REMARKS");
                int index = rs.getInt("ORDINAL_POSITION");

//                if(map.containsKey(columnName)){
//                    isPk = "true";
//                }

                System.out.println("\t<attribute attrName=\"" + tableName_ + "_" + columnName + "\" isFakeColumn=\"false\" " +
                        "dataType=\"" + dataType + "\" " + "isPrimaryKey=\""+ isPk + "\" " + "isAutoIncrement=\"" + isAutoincrement + "\" " +
                        "maxlength=\"" + columnSize + "\" " + "columnName=\"" + columnName + "\" " +
                        "isNullable=\"" + isNullable + "\" " + "index=\"" + index + "\" " +
                        "tableName=\"" + tableName_ + "\"/>");
            }

            System.out.println("</attributes>\n" +
                    "\n" +
                    "</dataSetConf>");
            //map.clear();

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            oracle.ReleaseResource(connection,rs);
        }
    }

  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2022-01-24 15:55
    关注

    这是表数据问题,本身就存在重复,代码没啥问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月24日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器