1

您好,祝大家新年快乐。

我正在开发一个 JDBC 程序,它获取服务器中的每个数据库,访问每个表并收集有关列的信息。最后,我想将表格中的每一行信息添加为行。我的程序编译并正确运行,但表总是返回空集。我试图打印出每次构造什么样的查询。然后,只需将其复制粘贴到终端并添加行!无法理解我错过了什么。

private Connection connection = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD);
connection.setAutoCommit(false);
private Statement statement = connection.createStatement();
String sql = "INSERT INTO collection VALUES ('"+dbName+"', '"+tName+"', '"+fName+"')";
System.out.println(sql);
statement.executeUpdate(sql);

在输出控制台上:

    INSERT INTO collection VALUES ('information_schema', 'INNODB_BUFFER_POOL_STATS', 'PAGES_CREATE_RATE')
    INSERT INTO collection VALUES ('information_schema', 'INNODB_BUFFER_POOL_STATS', 'PAGES_WRITTEN_RATE')
    INSERT INTO collection VALUES ('information_schema', 'INNODB_BUFFER_POOL_STATS', 'NUMBER_PAGES_GET')
    INSERT INTO collection VALUES ('information_schema', 'INNODB_BUFFER_POOL_STATS', 'HIT_RATE')
.
.
.
4

1 回答 1

3

看看使用事务。由于您关闭了自动提交,因此您需要先开始事务(只需将自动提交设置为 false 可能会开始事务,请查看 JDBC 文档),完成后您需要提交事务。当您关闭自动提交时,不会保存任何内容,而无需您明确提交事务。

于 2012-12-31T12:19:19.047 回答