有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用jdbc实现java计数行sql表

我无法计算sqltable的行数。在MS Studio中仅使用查询可以很好地工作,但当我尝试使用Java时,会出现sql异常:

Connection con = null;
    Statement stat = null;
    int result = 0;
    int i;
    try {
        con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;user=sa;password=123456; databaseName=RPA;");
        stat = con.createStatement();
        result = stat.executeUpdate("select count(*) FROM RPA_Users");

    }catch (SQLException e) {
        System.out.println("cannot connect!");
        e.printStackTrace();
    } finally {
        if (con != null) {
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    return result;

有人能解释一下我做错了什么吗? 提前谢谢

编辑:没关系,伙计们,我已经找到了,一如既往地感谢你们的帮助! 如果有人感兴趣,我的解决方案是:

result = stat.executeQuery("select count(*) FROM /tablename/"); 
        result.next();
        rowCount = result.getInt(1);    

共 (3) 个答案

  1. # 1 楼答案

    这是完整的代码:

    {
        Connection con = null;
        Statement stat = null;
        ResultSet result = null;
        int rowCount = -1;
        try {
            con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;user=sa;password=123456; databaseName=RPA;");
            stat = con.createStatement();
            result = stat.executeQuery("select count(*) FROM RPA_Users");   
            result.next();
            rowCount = result.getInt(1);        
            }catch (SQLException e) 
            {
                System.out.println("cannot connect!");
                e.printStackTrace();
            } 
        finally {
            if (con != null) {
                try {
                    con.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                    }
            }
        }
        return rowCount;
    
    }
    
  2. # 2 楼答案

    使用executeQuery而不是executeUpdate来发出数据库读取查询

    result = stat.executeQuery("select count(*) FROM RPA_Users");
    

    :考虑Using Prepared Statements

  3. # 3 楼答案

    您正在使用executeUpdate()进行查询。这行不通

    您应该切换到^{}。此方法返回一个ResultSet,您必须对其进行计算