使用MS Access数据库来保存我的信息,它一直运行良好,在此之前,我创建了一个名为CreateLicense()的新方法,它接受我创建的许可证类并将其写入数据库。
当代码运行时,它将吐出一个错误,声明“用户缺乏特权或未找到对象:过期”
已经尝试更改过期的字段名称,以防它是保留字或其他东西。也尝试删除过期的字段,但随后标记相同的错误,但与联系人相反。
INSERT INTO Licenses (Name, DateRedeemed, Expired, LicenseLength, Contact) VALUES ('name','25/Jun/2019','02/Jul/2019','2','contact')
user lacks privilege or object not found: EXPIRED
下面是我的SQL语句的输出
public boolean CreateLicense(License newLicense) {
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
File currentDir = new File(""); // Creates a new file
String newFilePath = "jdbc:ucanaccess://" + currentDir.getAbsolutePath().toString() + "\\store\\data\\database1.accdb";
Connection conn = DriverManager.getConnection(newFilePath);
Statement stmt = conn.createStatement();
stmt.executeUpdate("INSERT INTO Licenses (Name, DateRedeemed, Expired, LicenseLength, Contact) VALUES "
//Values for the SQL Statement
+ "('" + newLicense.getName()//Start Line
+ "','" + newLicense.getRedeemed()//Middle Lines
+ "','" + newLicense.getExpired()//Middle Lines
+ "','" + newLicense.getLicenseLength()//Middle Lines
+ "','" + newLicense.getContact()+ "')");//End Line
conn.close();
return true;
} catch (Exception ex) {
String message = ex.getMessage();
System.out.println(message);
return false;
}
}
帮助解决表名的一些附加信息是许可证字段名及其类型
自动编号
字符串
字符串
字符串
int
字符串
我使用access中的查询设计创建了一个查询,这很好地为数据库提供了信息,所以问题不是sql。
更新当我在数据库中重命名表并运行应用程序时,我会得到相同的错误,但使用表名时,我将创建一个新的数据库,看看这是否解决了任何问题
找到解决方案
LicenseLength是一个Int值,但是您用引号包围它,就像它是一个字符串一样。另外,您是否尝试过使用参数化查询,如
String sql = "INSERT INTO Licenses (Name, DateRedeemed, Expired, LicenseLength, Contact) VALUES (?, ? ,?, ?, ?)";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, newLicense.getName());
stmt.setString(2, newLicense.getRedeemed());
stmt.setString(3, newLicense.getExpired());
stmt.setInt(4, newLicense.getLicenseLength());
stmt.setString(5, newLicense.getContact());
问题内容: 因此,我已经在Google和堆栈中进行搜索,我发现了一堆错误相同的ppl,但是没有一种解决方案似乎可以解决我的问题。 我正在使用什么: Java 8 JavaEE7 TomEE 7.0 M3 JPA 2.0 ORM 1.0 Postgres 我认为问题在于命名查询,也许还有ManyToMany关系。 实体 User.java SystemRole.java XML配置 persiste
我正在使用和。每当我尝试执行insert语句时,我都会得到错误。 表clears存在于中,但是我遇到了这个错误。 offersdao.java
我正在看一些旧代码,在运行一个单元测试时遇到了问题。 代码为: 但是,当试图准备语句时,它会抛出错误 用户缺少权限或找不到对象:CUSTOMERS_SEQ。下一个瓦尔。 我正在阅读错误本身,似乎找不到任何东西。奇怪的是,当我在本地运行查询选择CUSTOMERS_SEQ.NEXTVAL时,它工作正常。 任何和所有的帮助将不胜感激。
在我的项目中,我使用HSQLDB作为数据库。构建了数据库并添加了两个条目。现在我正在尝试用JPA获取这些条目。不幸的是,获得以下异常 错误:用户缺乏权限或找不到对象:BOOK javax.persistence.persistenceexception:org.hibernate.exception.sqlgrammarexception:无法在org.hibernate.jpa.spi.abst
在我的项目中,我使用HSQLDB作为数据库。构造了数据库并添加了两个条目。现在我正在尝试用JPA获取这些条目。不幸的是,出现以下异常 错误:用户缺乏特权或未找到对象:BOOK javax.persistence.persistenceException:org.hibernate.exception.sqlgrammareXception:在org.hibernate.jpa.spi.abstra