我寫了一個代碼,它將使用odbc
橋來查詢Excel中的數據。現在在java8中沒有更多的支持odbc
,我正在尋找一個相同的替代方案。我有近32種不同的實用程序。即從Excel數據庫查詢。以下是一個示例程序。使用JDBC連接到Excel 8
private void getTheDetailedDataForRca(String userName, XSSFWorkbook workbook, XSSFSheet sheet) {
// System.out.println("ph2");
try {
DecimalFormat df2 = new DecimalFormat("#.##");
HashMap<String, HashMap<String, Double>> myArray;
myArray = new HashMap<String, HashMap<String, Double>>();
String user = "%" + userName + "%";
String dburl = path.getDBUrl();
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
myConn = DriverManager.getConnection(dburl);
String queryString = "select Error As Err, Sum(TotalErrors) as Errors from [Quality Sheet$] where Associate like ? group By Error";
PreparedStatement ps = myConn.prepareStatement(queryString);
ps.setString(1, user);
ResultSet rs = ps.executeQuery();
myArray.put(userName, new HashMap<String, Double>());
while (rs.next()) {
double inputValue = rs.getDouble("Errors");
String fin = df2.format(inputValue);
myArray.get(userName).put(rs.getString("Err"), Double.parseDouble(fin));
}
ps.close();
myConn.close();
printMapOne(myArray, userName, workbook, sheet);
} catch (Exception e) {
System.out.println(e + "\t" + "in finals sheet B2");
}
}
而且我dburl是
public String getDBUrl() {
return "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=C:\\Users\\" + getSystemId
+ "\\Desktop\\Quality Sheets\\quality_template.xlsx;";
}
我在網上查這讓我吃驚,我發現沒有什麼除了建議使用POI
。我試過UCanAccess
,但這隻支持Access數據庫。有人可以讓我知道任何替代odbc
,所以我不需要編碼整個事情。
我試過在Removal of JDBC ODBC bridge in java 8
給出的解決方案,我在cmd中得到的消息如下。
C:\Users\u0138039\Desktop\sun>jar -cvf jdbc.jar sun
sun : no such file or directory
added manifest
但是在文件夾中創建了一個jar文件。
我貼上相同的JDBC驅動程序C:\Program Files (x86)\Java\jdk1.8.0_101\jre\lib
,並複製到jdbcodbc.dll
C:\Program Files (x86)\Java\jre1.8.0_101\bin
,重新啓動,並讓我吃驚,我得到了相同的java.sql.SQLException: No suitable driver found for jdbc:odbc
例外。這裏
感謝
查看答案解釋[如何啓用JDBC-ODBC橋爲JDK 8](http://stackoverflow.com/a/36875001/5221149) – Andreas
嗨@Andreas,我試過這個,但不幸的是,這不會發生作用。你可以取下重複的標誌,我搜索了這個,然後我發佈了這個問題,因爲我沒有找到任何其他選項:-(。 – user2423959
@Andreas,當我運行命令時,我收到了這條消息' C:\ Users \ u0138039 \ Desktop \ sun> jar -cvf jdbc.jar sun sun:沒有這樣的文件或目錄 增加了manifest'。你能澄清這是否導致錯誤嗎? – user2423959