将数据插入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());
}