使用jdbc访问excel作为数据库

我必须设计一个应用程序来访问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+"'"); 

我正在调用此方法两次,之后我使用更新excel文件

 stmt.executeUpdate(sql); 

它返回整数1,但它没有反映在excel中。当我使用进程资源管理器时,文件仍然在使用。我需要一个设计模式或来代码来克服他的问题。

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

  1. 不是数据库
  2. 不是网络数据库其他的话你必须使用其他工具,其他方法来完成你的任务。