executeUpdate()后表为空

时间:2012-12-31 12:15:51

标签: mysql jdbc

您好,祝大家新年快乐。

我正在开发一个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')
.
.
.

1 个答案:

答案 0 :(得分:3)

看看使用交易。由于您已自动提交,因此您需要首先开始事务(只需将auto commit设置为false即可开始事务,检查JDBC文档),当您完成时,您需要提交事务。在没有显式提交事务的情况下,当你自动提交时,什么都不会被保存。