由于Java8不支持JDBC,我试图修改我的程序,以便它仍然可以从Microsoft Access数据库提取和修改数据。
它一直抛出一个SQLException。目前,我的代码用于打开到数据库的连接并进入查询:
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
con = DriverManager.getConnection("jdbc:ucanaccess://C:/Users/Andrew/Dropbox/Public/Schoolwork/IRC/BBFBL/BBFBLMasterVersion3.accdb"); //name of ODBC driver
Statement stmt = con.createStatement();
stmt.executeQuery("SELECT * FROM DraftNightQuery");
因为我看到了一个类似的问题,其中解决方案必须确保查询输入正确,这是它试图访问的表的名称:
DraftNightQuery SQL:
SELECT Players.ID, Players.Last, Players.First, TotalStats.team, Players.DraftStatus, TotalStats.pos, Players.OwnerID, Owners.TeamName, Salaries! [Salary] AS Salary, [TotalStats]![games_DH] AS DH, [TotalStats]![games_C] AS C, [TotalStats]![games_1B] AS 1B, [TotalStats]![games_2B] AS 2B, [TotalStats]![games_3B] AS 3B, [TotalStats]![games_SS] AS SS, [TotalStats]![games_LF]+[TotalStats]![games_CF]+[TotalStats]![games_RF] AS [OF], TotalStats.PG, TotalStats.GS, Players.PositionType
FROM Salaries INNER JOIN (Owners RIGHT JOIN (Players LEFT JOIN TotalStats ON Players.ID = TotalStats.ID) ON Owners.OwnerID = Players.OwnerID) ON Salaries.ID = Players.ID
WHERE (((Players.OwnerID) Is Null))
ORDER BY Players.Last, Players.First;
查询最初可能不是通过使用Access中的design视图生成的,因为在特定情况下会使用感叹号(而不是简单的点)。无论如何,问题是使用感叹号,而UCANAccess还不支持这一点。替换!和。应该可以解决这个问题(而且它与ms access兼容)。
我的程序是一个会计管理器,我有一个HSQLDB。这是主类,我目前正在对程序进行测试,所以在主函数中是我输入测试代码以将值插入数据库的地方。这是应用程序类。 我已经多次检查该表是否存在。我使用IntelliJ idea,它有一个数据库管理器,当我直接在数据库中运行相同的SQL时,它运行得很好,所以我知道问题不在于SQL代码。
我试图使用SQL从java代码编写一个查询,以查找两个日期列之间的年份差异。我有一个表,其中包含列和,我想计算这两列之间的年数。 我的java代码块: 每当我试图运行代码时,我都会得到错误 我想要的是获得列和之间的年数。
我正在看一些旧代码,在运行一个单元测试时遇到了问题。 代码为: 但是,当试图准备语句时,它会抛出错误 用户缺少权限或找不到对象:CUSTOMERS_SEQ。下一个瓦尔。 我正在阅读错误本身,似乎找不到任何东西。奇怪的是,当我在本地运行查询选择CUSTOMERS_SEQ.NEXTVAL时,它工作正常。 任何和所有的帮助将不胜感激。
我正在尝试做一些Ucanaccess实践,用Java管理一些数据库。我得到了一个我不知道如何解决的错误。 我在Access中有一个名为USERS的表: 自动编号,短文本,短文本,数字。 代码继续,但只有一些条件和查询。