2016-05-28 50 views
1

我試圖與Java 8中這個答案連接到Access數據庫,如:java.util.regex.PatternSyntaxException與UCanAccess

Manipulating an Access database from Java without ODBC

我不熟悉DB的創作/設計。

連接似乎工作,因爲我得到一些錯誤信息是這樣的:

警告:錯誤在表MB02的元數據:表中的行數在 元數據是556點,但是557的記錄已經找到並通過 UCanAccess加載。所有的都可以正常工作,但最好修復你的數據庫。

我有這個方法試圖拉出來的東西數據庫與SQL SELECT語句:

public void searchDatabase() 
     throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException { 

    Connection con = DriverManager 
      .getConnection("jdbc:ucanaccess:///C:/Users/Blabla.mdb"); 
    Statement stmt = con.createStatement(); 

    String query = "SELECT * FROM MB01"; 

    ResultSet resultSet = stmt.executeQuery(query); 

    while(resultSet.next()){ 
     System.out.println(resultSet.getString(1)); 
    } 

} 

我不斷收到此錯誤:螺紋

異常「主」 java.util.regex.PatternSyntaxException: 懸掛元字符'?'近索引19 MB 01 BEZAHLT ??? ^ java.util.regex.Pattern.error(Unknown Source)at java.util.regex.Pattern.sequence(Unknown Source)at java.util.regex.Pattern.expr(Unknown Source)at java.util .regex.Pattern.compile(Unknown Source)at java.util.regex.Pattern。(Unknown Source)at java.util.regex.Pattern.compile(Unknown Source)at java.lang.String.replaceAll(Unknown源)在 net.ucanaccess.converters.SQLConverter.replaceWhiteSpacedTableNames0(SQLConverter.java:547) 在 net.ucanaccess.converters.SQLConverter.replaceWhiteSpacedTables(SQLConverter.java:526) 在 net.ucanaccess.converters.SQLConverter。 convertSQL(SQLConverter.java:372) at net.ucanaccess.converters.SQLConverter.convertSQL(SQLConverter.java:472) 在 net.ucanaccess.jdbc.UcanaccessStatement.convertSQL(UcanaccessStatement.java:57) 在 net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement的.java:206) 在DBCrawler.searchDatabase(DBCrawler.java:27)

線27是引發該錯誤是:

ResultSet resultSet = stmt.executeQuery(query); 

事情是我可以離開查詢字符串空或者把我的任何無意義的價值噸,我仍然得到錯誤。

我從哪裏開始尋找問題,或者我該如何解決這個問題?

+3

問題似乎來自數據庫本身。檢查是否有某個角色可能被誤認爲通配符。 –

+1

您是否使用相同的ucanaccess版本的控制檯?注意... – jamadei

+1

另外您使用的ucanaccess版本似乎很舊... – jamadei

回答

2

我使用名爲19 MB 01 BEZAHLT ???的表創建了一個Access數據庫,並能夠使用UCanAccess 3.0.5重現您的問題。問題 將是 已修復在 未來發行的 UCanAccess 3.0.6。

+0

感謝您的努力,現在的工作。 –

相關問題