用jdbc计算行sql表

时间:2014-06-02 13:23:51

标签: java sql jdbc

我无法计算我的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 个答案:

答案 0 :(得分:2)

使用executeQuery代替executeUpdate发布数据库读取查询

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

除此之外:考虑Using Prepared Statements

答案 1 :(得分:1)

您正在使用executeUpdate()进行查询。这不会奏效。

您应该切换到executeQuery()此方法会返回您需要评估的ResultSet

答案 2 :(得分:0)

这是完整的代码:

{
    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;

}