Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用jdbc访问excel数据库_Java_Excel_Jdbc - Fatal编程技术网

Java 用jdbc访问excel数据库

Java 用jdbc访问excel数据库,java,excel,jdbc,Java,Excel,Jdbc,我必须设计一个应用程序作为数据库访问excel应用程序。我的问题是我必须为每个事务创建多个连接,如果我错过了关闭它的任何一个连接,excel将不会被更新 我想设计一个可以访问excel的模式。任何人都可以帮助我设计一个通用的模式,通过它我不会有问题。我想要类似的东西,但我们无法使用它访问excel 提前谢谢 我在实用程序类中有这个方法 static ResultSet getExcelData(String filePath,String sqlQuery){ ResultSet rs

我必须设计一个应用程序作为数据库访问excel应用程序。我的问题是我必须为每个事务创建多个连接,如果我错过了关闭它的任何一个连接,excel将不会被更新

我想设计一个可以访问excel的模式。任何人都可以帮助我设计一个通用的模式,通过它我不会有问题。我想要类似的东西,但我们无法使用它访问excel

提前谢谢

我在实用程序类中有这个方法

static ResultSet  getExcelData(String filePath,String sqlQuery){
    ResultSet rs=null;


    try{
        conn    = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ="+filePath+";READONLY=false");
        stmt=    conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        rs=stmt.executeQuery( sqlQuery ); 
    }catch (Exception e) {
        e.printStackTrace();
        return null;
        // TODO: handle exception
    }finally{


    }
    return rs;

}
我这样称呼它

ResultSet rs=JdbcUtil.getExcelData("D:\\AB_demo\\AB_demo\\test.xls", "Select max(int(ID)) from [MAIN$] where HEADER_IND is not Null AND int(ID)<"+excelId);
        int databaseId = 0;
        if(rs.next())
        {
            databaseId=rs.getInt(1);    
        }


        ResultSet rs1=JdbcUtil.getExcelData("D:\\AB_demo\\AB_demo\\test.xls", "SELECT * from [MAIN$]  where   id= '"+databaseId+"'or id='"+excelId+"'");

它返回整数1,但在excel中没有反映。当我使用process explorer时,该文件仍在使用。我需要一个设计模式或come代码来解决这种问题。

我认为更正确的方法是从数据库生成excel文件。否则,必须创建服务器端以确保事务和连接控制。 您的任务-Excel的主要问题是

  • 不是数据库
  • 非网络数据库 换句话说,你必须使用其他工具,其他方法来完成你的任务

  • 为什么不使用access作为数据库,因为excel并不是专门用来作为数据库的。我基本上是在testng中使用它,我必须读取字典中的类和数据,并通过testng java代码运行它。如果测试通过或失败,根据结果更新数据。我有,但我的要求是作为数据库访问excel数据库。我的要求是使用excel文件首先你需要用你尝试过的内容更新你的帖子。然而,正如另一篇帖子所指定的,excel是数据库第二差的选项。原始csv是第一个。要访问该文件,请尝试。控制面板、管理工具、系统DSN,然后在其中设置访问文件。一旦在java中进行了设置,而不是使用数据库的路径,只需使用您在DSN中设置的DSN名称即可。
    stmt.executeUpdate(sql);