- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Netbeans IDE 8.02 来操作 Access 数据库,但随着驱动程序的删除,我一直在与 UCanAccess 作斗争。我已经能够将数据插入数据库,并且能够从数据库接收数据,但是我很难删除记录,即使这是一个非常简单的查询。
这是我的方法:
public void VerwyderHemp(String Path, int KledingStukNo){
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
conn = DriverManager.getConnection("jdbc:ucanaccess://" + Path);
st = conn.createStatement();
String sql = "DELETE FROM tblHemde WHERE tblHemde.ID = " + KledingStukNo + ";" ;
ResultSet rs = st.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
}
我在 jFrame 的 jButton 中使用我的方法,它看起来像这样:
private void jButtonVerwyderHempActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int KledingstukNo = Integer.parseInt(jTextFieldDeleteHemp.getText());
myHemp.VerwyderHemp(Path2, KledingstukNo);
System.out.println(KledingstukNo);
}
参数“Path2”只是指定数据库的位置并且不会出现任何问题,因为我已经在类似的方法中使用了它,但我不太确定其他参数“KledingstukNo”,尽管当我打印出“KledingstukNo”时”,我得到了在“jTextFieldDeleteHemp”中输入的值。
当我连接到数据库时,我收到以下消息:
警告:表 tblHemde 的元数据中出现错误:元数据中表的行数为 8,但 UCanAccess 已找到并加载了 9 条记录。一切都会正常工作,但最好修复您的数据库。
当我尝试删除记录时,我收到以下错误消息:
*
net.ucanaccess.jdbc.UcanaccessSQLException: java.lang.NullPointerException java.lang.NullPointerException
9
at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:202)
at Klasse.Hemp.VerwyderHemp(Hemp.java:196)
at GUI.FinalGUI.jButtonVerwyderHempActionPerformed(FinalGUI.java:598)
at GUI.FinalGUI.access$600(FinalGUI.java:27)
at GUI.FinalGUI$7.actionPerformed(FinalGUI.java:328)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6516)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6281)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4872)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4698)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:720)
at java.awt.EventQueue$4.run(EventQueue.java:718)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.sql.SQLException: java.lang.NullPointerException java.lang.NullPointerException
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.executeQuery(Unknown Source)
at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:199)
... 40 more
Caused by: org.hsqldb.HsqlException: java.lang.NullPointerException
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.result.Result.newErrorResult(Unknown Source)
at org.hsqldb.StatementDMQL.execute(Unknown Source)
at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
at org.hsqldb.Session.executeDirectStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 43 more
Caused by: java.lang.NullPointerException
at net.ucanaccess.jdbc.UcanaccessConnection.getCtxConnection(UcanaccessConnection.java:87)
at net.ucanaccess.triggers.TriggerDelete.fire(TriggerDelete.java:33)
at org.hsqldb.TriggerDef.pushPair(Unknown Source)
at org.hsqldb.Table.fireTriggers(Unknown Source)
at org.hsqldb.StatementDML.delete(Unknown Source)
at org.hsqldb.StatementDML.executeDeleteStatement(Unknown Source)
at org.hsqldb.StatementDML.getResult(Unknown Source)
... 47 more
BUILD SUCCESSFUL (total time: 24 seconds)*
我没有找到此错误的原因,请帮忙!
最佳答案
这是对语句接口(interface)的不当且意外的使用。不要使用
st.executeQuery(sql);
带有删除sql语句但是st.execute(sql);
或st.executeUpdate(sql);
关于java - 简单删除查询不适用于 UCanAccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31437033/
与之前关于“意外 token ”的问题相关 我收到以下错误 UCAExc:::3.0.3.1 unexpected token: $BRANDRAP 当我在 NB IDE 中运行下面
我是 UCanAccess 的新手,我正在使用它来代替将 Microsoft Office 从 32 位重新安装到 64 位或将 Netbeans 8.0.2 从 64 位重新安装到 32 位。 我正
我在让 ucanaccess 连接到我的数据库时遇到问题。在构建应用程序时,我在本地维护了数据库,可以通过在 URL 中传递本地文件路径来连接到它。我现在正尝试将其转移到网上,并尝试将 URL 更改为
我正在使用 Netbeans IDE 8.02 来操作 Access 数据库,但随着驱动程序的删除,我一直在与 UCanAccess 作斗争。我已经能够将数据插入数据库,并且能够从数据库接收数据,但是
我已经正确添加了所有必需的 JARS: Ucanaccess 3.0.4 commons-lang-2.6 commons-logging-1.1.1 hsqldbd jackcess-2.1.3 我
这个问题已经有答案了: invalid datetime format: insert date/time into Access from Java (1 个回答) 已关闭 7 年前。 conn =
我正在尝试使用 UCanAccess 将我的 Java 代码连接到 access 中的表这是我的代码: import java.sql.*; public class HH { public
我有一个问题。我使用这个查询: SELECT prodeje.datum, prodeje.prodejce, prodeje.pocet, prodeje.
这个问题在这里已经有了答案: SQL INSERT without specifying columns. What happens? (6 个答案) 关闭 7 年前。 我的程序总是将 Access
我的数据库中不断出现“找不到合适的驱动程序”,但我无法确定我的连接类出了什么问题?有什么帮助吗?我已放入所有 5 个 jar。我想连接到 Microsoft Access 数据库。 import ja
我有一个可用的 Java 项目,它使用 Access .accdb 数据库来存储数据。我正在为我的程序进行更新,以便为用户提供更多功能。为此,我需要在现有的充满数据的表中添加一列。当我研究时,我发现
我正在尝试进行一些 Ucanaccess 练习,以使用 java 管理某些数据库。我收到一个错误,但我不知道如何解决。 我在 Access 中有一个名为 USERS 的表: 自动编号、短文本、短文本、
我有一个非常有趣的问题,但我没能找到问题的根源。 我的公司最近更新到了较新版本的 Java,用于连接到 MS Access DB 的旧 ODBC 连接方法不再有效。所以我正在更新到新方法。 我发现 U
需要了解如何使用 UCanAccess,我可以在这些选择中使用分组依据。 String sql = "SELECT Route_To, BatchNo, BatchScOpr, BatchTrac
是否有其他方法可以在无限循环结束时正确关闭与 ms access 数据库的连接?因为如果将记录插入表中,则使用下面的代码我看不到插入的新行。看起来数据库没有正确关闭或其他什么...不知道为什么会这样。
我已经将我的应用程序设置为通过 UCanAccess 连接到 Access 数据库,但是我无法连接到位于共享驱动器上的数据库。请参阅下面的示例。 String databasePath = "jdbc
如何使用 jdbc 编写 sql 查询来创建对 2 列具有唯一约束的表:我尝试这段代码并给出“SQLException:无效的创建语句!”: Connection conn = ConnectDB.
大家下午好,我正在尝试将一些数据插入访问表,但由于主键违规而无法运行 import java.sql.Connection; import java.sql.DriverManager; import
我正在使用 ucanaccess 将 java 与 access 数据库连接。我使用此代码来计算查询中的行数: ResultSet rs = s.getResultSet(); int size; r
我使用 UCanAccess 创建了两个表,它们之间存在关系。但它并没有创造这种关系。为什么?怎么了?我该如何解决这个问题? statement.execute("CREATE TABLE examp
我是一名优秀的程序员,十分优秀!