2016-09-11 4 views
1

でPreparedStatementを実行するとき、私はUCanAccess

package Vegan; 

import java.sql.Connection; 
import java.sql.DriverManager; 


public class connectionString { 

static Connection connection = null; 

public static Connection getConnection() 
{ 
    try 
    { 
     connection = DriverManager.getConnection("jdbc:ucanaccess://C:/Mo//MyDatabase1.accdb"); 
     System.out.println("---connection succesful---"); 
    } 

    catch (Exception ex) 
    { 
     System.out.println("Connection Unsuccesful"); 
    } 

    return connection; 
} 

 

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); 


    } 

 

(UCanAccessでサポート)ResultSetを使用してGUIの私のコンボボックスを移入しようとしているエラー "をサポートできない機能"
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); 
    } 
} 

実行するたびに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 

私はこれが原因で何かが分かりません。私はucanaccessでその問題を想定していますか?参照のためのAccessデータベースへのリンク:例外は声明

rs = ps.executeQuery(query); 

それは、PreparedStatementオブジェクトで作業を開始する人のための一般的なエラーであるによって引き起こされるhttp://www53.zippyshare.com/v/DMLjdpDw/file.html

+0

あなたの 'getCat'メソッドの定義は表示されません。 –

+0

今すぐ更新しました。ありがとう –

答えて

3

.prepareStatementを呼び出すときにSQLコマンドテキストを指定します。時間がPreparedStatementを実行するために来るとき、我々はパラメータでのPreparedStatementの.execute...メソッドを呼び出すことはありませんので

ps = connection.prepareStatement(query); 

だから、あなたは、単に

rs = ps.executeQuery(); 

を呼び出し、UCanAccess JDBCドライバが「機能ではなくスローサポートされた "例外です。

+0

混乱を減らすために、例外メッセージを「サポートされていない機能」以外のものに変更することをお勧めします(技術的には実装する必要がある機能です)。 –

関連する問題