我試圖與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);
事情是我可以離開查詢字符串空或者把我的任何無意義的價值噸,我仍然得到錯誤。
我從哪裏開始尋找問題,或者我該如何解決這個問題?
問題似乎來自數據庫本身。檢查是否有某個角色可能被誤認爲通配符。 –
您是否使用相同的ucanaccess版本的控制檯?注意... – jamadei
另外您使用的ucanaccess版本似乎很舊... – jamadei