微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-使用jdbc将excel作为数据库访问

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

我想设计可以访问Excel的模式.任何人都可以帮助我设计一种通用的模式,这样我就不会遇到问题.我想要this之类的东西,但是我们无法使用它来访问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中.当我使用Process Explorer时,该文件仍在使用中.我需要一种设计模式或代码来克服他的这类问题.

解决方法:

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

>不是数据库
>不是网络数据库
换句话说,您必须使用其他工具,其他方法来执行任务.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐