将数据插入Ms access的Java代码..运行时不显示错误,但不会向表中添加新行

将数据插入Ms access的Java代码..运行时不显示错误,但不会向表中添加新行,java,Java,我对准备好的声明有疑问,但执行后没有给出任何错误。没有例外。。运行时没有错误。。只是我的数据库没有更新 我对准备好的声明有疑问,但执行后没有给出任何错误 事实上,这可能是一个错误。问题是您正在丢弃以下代码中的所有错误(除了Error子类) package com.sample.works; import java.sql.Connection; import java.sql.DriverManager import java.sql.PreparedStatement; import jav

我对准备好的声明有疑问,但执行后没有给出任何错误。没有例外。。运行时没有错误。。只是我的数据库没有更新

我对准备好的声明有疑问,但执行后没有给出任何错误

事实上,这可能是一个错误。问题是您正在丢弃以下代码中的所有错误(除了
Error
子类)

package com.sample.works;

import java.sql.Connection;
import java.sql.DriverManager
import java.sql.PreparedStatement;
import java.sql.Statement;`

public class OdbcAccessInsertRows {
    public static void main(String[] args) {
        Connection con = null;
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            con = DriverManager.getConnection("jdbc:odbc:Pname", "", "");

            PreparedStatement pstmt = (PreparedStatement) con.prepareStatement("insert into pilot(pname,pcountry,plocation) values(?,?,?)");
            Statement sta = con.createStatement();              
            pstmt.setString(1, "Tom");
            pstmt.setString(2, "USA");
            pstmt.setString(3, "California");

            int r = pstmt.executeUpdate();

              con.commit();
             pstmt.close();


            if (r >= 1) {
                System.out.println("data entered successfully");
            }
        } catch (Exception e) {
             System.err.println("Exception: "+e.getMessage());
        }
    }
}
上面有两个错误:

  • 您已经注释掉了打印错误消息的代码。(呸!)

  • 您正在捕获异常。这通常是个坏主意,在这里绝对是个坏主意。您应该只捕获1)您期望的异常,以及2)您可以正确处理的异常



接下来要做的是打印
r
的值。那应该是
1
。。。这是应插入的行数

请在格式化您的代码方面花些功夫-在提交之前,使用预览检查代码的外观是否符合您的要求。(提示:对于代码块,您根本不需要反勾号…只需要缩进。)现在,您不需要在任何地方提交。。。也许这就是问题所在?空的
catch
块隐藏了发生的任何异常。不要那样做。你永远不会知道出了什么问题。是的,我会接受杰斯珀的建议,至少取消注释
System.err.println(“异常:+e.getMessage())嗨,欢迎来到堆栈溢出!因为这是你第一次在这里发帖,所以我强烈建议你将这些页面通读一遍:它们都是在提问或回答问题时使用的绝佳资源,将帮助你快速获得最佳答案。@JonSkeet抱歉……这是我第一次在这里发帖……现在我将其格式设置正确……请查看并帮助我。。。当我运行..它在命令提示符和eclipse中都没有显示任何错误…当我打开我的msaccess…行没有插入我删除了注释…在cmd提示符和eclipse中仍然没有显示任何错误。。。。没有显示错误您是否已修复捕获(异常…
讨厌的问题?(只是询问…)是的…我修复了捕获块,正如您所说,我打印了
r
的值,它显示为
1
    } catch (Exception e) {
        // System.err.println("Exception: "+e.getMessage());
    }