jdbc ucanaccesssqlexception ucaexc ::: 4.0 4 意外令牌:DOCTOR
Posted
技术标签:
【中文标题】jdbc ucanaccesssqlexception ucaexc ::: 4.0 4 意外令牌:DOCTOR【英文标题】:jdbc ucanaccesssqlexception ucaexc ::: 4.0 4 unexpected token: DOCTOR 【发布时间】:2019-05-30 13:37:41 【问题描述】:我正在使用带有 java 类的 netbeans 从访问数据库表中获取数据并将其显示在 jtable 上。当我按照所有步骤操作时,它给了我 ucanaccess 错误,因为 net ucanaccess jdbc ucanaccesssqlexception ucaexc ::: 4.0 4 unexpected token: DOCTOR。我在 accdb 中有两个名为 Patient 和 Doctor 的表。
我已经做了所有需要的。
public void viewAppointment() throws ClassNotFoundException, SQLException
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection conn = DriverManager.getConnection("jdbc:ucanaccess://C:/Users/AQ/Documents/NetBeansProjects/MC170402106_2/MC170402106.accdb");
String sql1 = "Select p.Name AS Patient, p.Disesae AS Disease, Doctor.Name AS Doctor"
+ " Doctor.Visiting_Day AS SechduleDay from Patients AS p"
+ " where p.Disease = Doctor.Specialization";
try
ps = conn.prepareStatement(sql1);
rs = ps.executeQuery();
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
catch(Exception e)
JOptionPane.showMessageDialog(null, e);
我希望这将从数据库中获取数据并将其显示在 jtable 上。
【问题讨论】:
你打错了,URL的前缀应该是jdbc:ucanaccess:
,而不是jdbc.ucanaccess:
(使用:
而不是a .
).
Class.forName
声明的意义何在?不需要。
现在它给出“net ucanaccess jdbc ucanaccesssqlexception ucaexc ::: 4.0 4 unexpected token: DOCTOR”
FROM 条件缺少对 Doctor 表的查询。不要忘记 WHERE 标准中医生和患者之间的“链接”(FK 关系)(p.Disease = Doctor.Specialization 可能还不够)
Doctor.Name AS Doctor
后面少了一个逗号。
【参考方案1】:
我假设:
-
您正在使用 JPA
你设置
delimited-identifiers
您还使用 EclipseLink 作为实现。
如果是,请执行以下操作:
在 persistence.xml 中包含一个目标数据库条目:
<property name="eclipselink.target-database" value="org.eclipse.persistence.platform.database.AccessPlatformDelimiterConfig"/>
在你的类路径中添加一个新类:
package org.eclipse.persistence.platform.database;
public class AccessPlatformDelimiterConfig extends AccessPlatform
private static final long serialVersionUID = 7034590043310425678L;
public AccessPlatformDelimiterConfig()
super();
this.tableQualifier = "";
this.startDelimiter = "";
this.endDelimiter = "";
【讨论】:
以上是关于jdbc ucanaccesssqlexception ucaexc ::: 4.0 4 意外令牌:DOCTOR的主要内容,如果未能解决你的问题,请参考以下文章