Java 无法获取数据库';s码

Java 无法获取数据库';s码,java,mysql,jdbc,Java,Mysql,Jdbc,我正在检查数据库的大小(当我检查使用过的数据库大小时,我发现它是浮点值):我正在使用这段代码: Public class DBSize{ private float dbSize; public float databaseSize(Float dbSize,String dataSize,String indexsize){ String apps="apps"; // It's my DB name String query_data = "

我正在检查数据库的大小(当我检查使用过的数据库大小时,我发现它是浮点值):我正在使用这段代码:

 Public class DBSize{

 private float dbSize;

    public float databaseSize(Float dbSize,String dataSize,String indexsize){
        String apps="apps";  // It's my DB name
        String query_data = "select table_schema,SUM(data_length+index_length)/1024/1024 AS total_mb,SUM(data_length)/1024/1024 AS data_mb,SUM(index_length)/1024/1024 AS index_mb,COUNT(*) AS tables,CURDATE() AS today FROM information_schema.tables where table_schema='"+apps+"' GROUP BY table_schema ORDER BY table_schema;";
        try {
            connection = getConnection();
            stmt = connection.createStatement();
            ResultSet rs=stmt.executeQuery(query_data);
            if(rs.next())      //as I'm selecting a particular database's information
            this.dbSize=rs.getFloat(2);
            this.dataSize=rs.getString(3);
            this.indexSize=rs.getString(4);

            System.out.println("DB Size : "+this.dbSize);           
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        finally
        {
            try {
                if(stmt != null)
                    stmt.close();
                if(connection != null)
                    connection.close();
                } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        return dbSize;

    }

public float getDbSize(){
        return dbSize;
    }
}
rs
正在获取空值(不知道是否无法从数据库获取值),即使我使用了字符串类型的函数,也会获取空值


任何输入…我出错的地方:(:(

将这三条赋值语句保留在
if
之后,如果condition
rs.next()
的计算结果为
true
,那么即使condition
rs.next()也只会执行第一条语句)
计算结果为
false
,这可能会导致某些异常

if(rs.next()){     
   this.dbSize=rs.getFloat(2);
   this.dataSize=rs.getString(3);
   this.indexSize=rs.getString(4);
}

将这三条赋值语句保留在块中的
if
之后,否则,如果condition
rs.next()
的计算结果为
true
,则仅执行第一条语句,即使condition
rs.next()也将始终执行下两条语句
计算结果为
false
,这可能会导致某些异常

if(rs.next()){     
   this.dbSize=rs.getFloat(2);
   this.dataSize=rs.getString(3);
   this.indexSize=rs.getString(4);
}

您是否先在数据库上启动了查询?是的,…并显示了正确的值您可以发布堆栈跟踪吗?您先在数据库上启动了查询吗?是的,…并显示了正确的值您可以发布堆栈跟踪吗?是的,但我的回答可能会帮助您我无法检索任何值…到目前为止:(我不知道到底是什么问题,但我只是想指出,如果其他一切都按预期工作,为了使代码/逻辑正常工作,您需要什么。是的,可能是,但我的回答可能会帮助您我无法检索任何值…到目前为止:(我不知道到底是什么问题,但我只是想指出,如果其他一切都按预期工作,那么为了使代码/逻辑正常工作,您需要什么。