Java &引用;“不支持功能”;在UCanaAccess中执行PreparedStatement时出错

Java &引用;“不支持功能”;在UCanaAccess中执行PreparedStatement时出错,java,ms-access,jdbc,ucanaccess,Java,Ms Access,Jdbc,Ucanaccess,我试图使用ResultSet(UCanAccess支持)在GUI中填充我的组合框 每次尝试执行UserMenu()时,都会出现以下错误: run: ---connection succesful--- Sep 11, 2016 11:04:47 PM Vegan.UserMenu <init> SEVERE: null net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.6 feature not supported

我试图使用ResultSet(UCanAccess支持)在GUI中填充我的组合框

每次尝试执行
UserMenu()
时,都会出现以下错误:

run:
---connection succesful---
Sep 11, 2016 11:04:47 PM Vegan.UserMenu <init>
SEVERE: null
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.6 feature not supported
at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:211)
at Vegan.DB.getCat(DB.java:203)
at Vegan.UserMenu.<init>(UserMenu.java:28)
at Vegan.UserMenu$4.run(UserMenu.java:179)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:749)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:702)
at java.awt.EventQueue$3.run(EventQueue.java:696)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:719)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.sql.SQLFeatureNotSupportedException: feature not supported
at org.hsqldb.jdbc.JDBCUtil.notSupported(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.executeQuery(Unknown Source)
at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:208)
... 17 more
运行:
---连接成功---
2016年9月11日11:04:47 PM Vegan.UserMenu
严重:空
net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc:::3.0.6不支持功能
位于net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:211)
位于Vegan.DB.getCat(DB.java:203)
在Vegan.UserMenu.(UserMenu.java:28)
在Vegan.UserMenu$4.run(UserMenu.java:179)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)中
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:749)
在java.awt.EventQueue.access$500(EventQueue.java:97)
在java.awt.EventQueue$3.run(EventQueue.java:702)
在java.awt.EventQueue$3.run(EventQueue.java:696)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:719)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)中
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
原因:java.sql.SQLFeatureNotSupportedException:不支持功能
位于org.hsqldb.jdbc.jdbcuti.notSupported(未知源)
位于org.hsqldb.jdbc.JDBCPreparedStatement.executeQuery(未知源)
位于net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:208)
... 还有17个

我不知道这是什么原因造成的。我想这是ucanaccess的问题吧?链接到access数据库以供参考:

异常是由语句引起的

rs=ps.executeQuery(查询);
对于开始使用PreparedStatement对象的人来说,这是一个常见的错误

调用
.prepareStatement
时提供SQL命令文本,例如

ps=connection.prepareStatement(查询);
因此,当执行PreparedStatement时,只需调用

rs=ps.executeQuery();

由于我们从不调用带有参数的PreparedStatement的
.execute…
方法,因此UCanAccess JDBC驱动程序会引发“feature not supported”(功能不受支持)异常。

该异常是由该语句引起的

rs=ps.executeQuery(查询);
对于开始使用PreparedStatement对象的人来说,这是一个常见的错误

调用
.prepareStatement
时提供SQL命令文本,例如

ps=connection.prepareStatement(查询);
因此,当执行PreparedStatement时,只需调用

rs=ps.executeQuery();

由于我们从未调用带有参数的PreparedStatement的
.execute…
方法,UCanAccess JDBC驱动程序会抛出一个“feature not supported”(功能不受支持)异常。

我看不到您的
getCat
方法的定义。现在已更新。谢谢,我没有看到你的
getCat
方法的定义。现在更新了。谢谢,我建议您将异常消息更改为“不支持功能”以外的内容以减少混淆(从技术上讲,异常是您必须实现的功能;)。我建议您将异常消息更改为“不支持功能”以外的内容以减少混淆(从技术上讲,例外是您必须实现的功能;)。
package Vegan;

import static java.nio.file.Files.list;
import static java.rmi.Naming.list;
import java.sql.*;
import java.util.ArrayList;
import static java.util.Collections.list;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JComboBox;


public class DB {


private static ResultSet rs = null;
private static PreparedStatement ps = null;
private static Connection connection = null;
private int StoreID;
private String userID;

public DB() {
    connection = connectionString.getConnection();
}


public void getCat(JComboBox box) throws SQLException {
    //String sql = "SELECT CategoryName FROM CategoryTbl GROUP BY CategoryName";


    String query = "SELECT CategoryName FROM CategoryTbl";
    ps = connection.prepareStatement(query);

    rs = ps.executeQuery(query);

    while (rs.next()) {
        String groupName = rs.getString("CategoryName");
        box.addItem(groupName);


    }
package Vegan;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.DefaultComboBoxModel;
import net.proteanit.sql.DbUtils;


public class UserMenu extends javax.swing.JFrame {

/**
 * Creates new form UserMenu
 */
public UserMenu() {
    try {
        initComponents();
        DB db = new DB();
        db.getCat(cmbCategory);


    } catch (SQLException ex) {
        Logger.getLogger(UserMenu.class.getName()).log(Level.SEVERE, null, ex);
    }
}
run:
---connection succesful---
Sep 11, 2016 11:04:47 PM Vegan.UserMenu <init>
SEVERE: null
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.6 feature not supported
at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:211)
at Vegan.DB.getCat(DB.java:203)
at Vegan.UserMenu.<init>(UserMenu.java:28)
at Vegan.UserMenu$4.run(UserMenu.java:179)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:749)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:702)
at java.awt.EventQueue$3.run(EventQueue.java:696)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:719)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.sql.SQLFeatureNotSupportedException: feature not supported
at org.hsqldb.jdbc.JDBCUtil.notSupported(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.executeQuery(Unknown Source)
at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:208)
... 17 more