在java中同时读取单个Excel文件

时间:2014-10-29 13:22:16

标签: java multithreading excel jenkins jdbc-odbc

我们在尝试从两个不同的Jenkins工作中运行我们的框架时得到了这个要求

以下是我们的代码:

String xlsPath= System.getProperty("user.dir")+"\\TestInputs\\Config.xls";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft    Excel Driver (*.xls)};DBQ=" +xlsPath+ ";DriverID=22;READONLY=TRUE","","");
String sql="Select  *  from [Setup$]";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
while(rs.next())
{

    System.out.println(rs.getString(1).toString());
    System.out.println(rs.getString(2).toString());
    System.out.println(rs.getString(3).toString());
    Thread.sleep(1000);
}
rs.close();
st.close();
conn.close();

当我们尝试通过多线程概念执行时,上面的代码工作得非常好。

但是如果我创建两个JENKINS JOBS并并行运行它,我会收到以下错误消息。

  

线程中的异常" main" java.sql.SQLException:[Microsoft] [ODBC Excel驱动程序] Microsoft Jet数据库引擎无法打开文件'(未知)'。它已由其他用户专门打开,或者您需要获得查看其数据的权限。

我们有解决方法吗?这样我就可以毫无问题地执行两个工作。

注意:我不能使用HSSF或其他方法来读取我的Excel文件。我应该严格使用数据库命令,就像我在上面的代码中使用它一样。

请帮忙!

0 个答案:

没有答案