【问题标题】:Netbeans JAVA MYSQL DB strange behavior - Can't retrieve data after closing the app - JDBC DriverNetbeans JAVA MYSQL DB 奇怪行为 - 关闭应用程序后无法检索数据 - JDBC 驱动程序
【发布时间】:2016-07-24 17:59:42
【问题描述】:

上周我的笔记本电脑崩溃后,我决定使用 netbeans 环境,以便能够在我的台式计算机上处​​理我的 java 项目。

我的笔记本电脑上一切正常,我的项目运行良好(我的 java 应用程序和我的数据库之间的通信正常)。

所以我在我的台式电脑上重新安装了所有东西(使用官方教程)

  • MySQL 服务器
  • 用于 JAVA 的 MySQL 连接(将 jar 文件放在 ext 文件夹中)
  • NetBeans 8.1

问题是我仍然可以使用我的应用程序连接到我的数据库,连接成功,但是在数据库中写入数据时,我无法使用 MySQL Workbench 或 NetBeans 中的嵌入式 SQL 查看器看到它们。 但是在应用程序中我可以访问这些数据!

尽管如此,访问数据仍然有效。 (我可以通过 MySQL Workbench 添加数据并使用我的应用访问这些数据)。

我放置了 try-catch 来捕获所有可能出现但没有出现的错误。 我没有出现任何错误(没有 SQLException)。

    try {
    connect.createStatement().executeUpdate("INSERT INTO COMPTE(TYPECPTE,VALINITIALE,SOLDE,NUMEROCPTE) VALUES('test',4,2,8)");

    ResultSet result = connect.createStatement().executeQuery("SELECT * FROM compte WHERE NUMEROCPTE = 8");

    if (result.next()) javax.swing.JOptionPane.showMessageDialog(null,"8 IS HERE - I FOUND IT"); 
    else javax.swing.JOptionPane.showMessageDialog(null,"8 IS NOT HERE - CANT FIND IT"); 

} catch (SQLException e) {
  e.printStackTrace();
}

此代码返回“8 IS HERE - I FOUND IT”。但是当我查看数据库时,我找不到里面有“8”的那一行。

谁能告诉我这是怎么回事?

【问题讨论】:

  • 您可以在插入后添加 conn.commit 后尝试一下,看看它是否有任何不同
  • 成功了。 Setautocommit 设置为 false 这就是为什么我看不到数据库中的数据。非常感谢您的回答,问题解决了!
  • 能否请您投票给我的答案并发表评论谢谢
  • 您通过创建语句而不关闭它来泄漏资源。
  • 我无法支持您的评论我需要 15 声望...如果您找到解决方案让我投票支持您的答案,我一定会!!

标签: java mysql database jdbc netbeans


【解决方案1】:

Setautocommit 设置为 false,这就是我看不到数据库中数据的原因。添加 conn.commit();每次更新后,插入和删除查询都有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2014-11-12
    • 2014-07-28
    • 2017-01-15
    • 2017-01-02
    相关资源
    最近更新 更多