Java与Microsoft Access数据库

时间:2016-06-28 19:11:50

标签: java asp.net database ms-access

我正在尝试使用带有java的Ucanaccess库连接到Microsoft Access ...

所以我尝试执行此代码并且有效....

        String url = "jdbc:ucanaccess:\\C:/Access.ACCDB";
        String query = "select * from [Donations]";
        try
        {   
        java.sql.Connection con =DriverManager.getConnection(url, "","");
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery(query);
        while (rs.next())
        {

        System.out.println("Account No: " + rs.getString(1));
        System.out.println("Surname: " + rs.getString(2));
        System.out.println("First Name: " + rs.getString(3));
        }
        }
        catch(SQLException ex)
        {
        while (ex!=null)
        {
        System.out.println ("SQL Exception: " + ex.getMessage ());
        ex = ex.getNextException();
        }
        }
        catch(java.lang.Exception ex)
        {
        ex.printStackTrace();
        }

让我解释一下我正在尝试做什么

我有一个使用Microsoft Access数据库的Asp.Net网站,同时我需要一个服务器(Java应用程序)来访问同一个数据库(Microsoft Access),但是当我在线上传数据库以测试服务器是否可以进入数据库并修改了连接的字符串....

这就是它的样子

 String url = "jdbc:ucanaccess://www.filetolink.com/download/?h=eaa4aab688d25e270539868d712961ab&t=1467140283&f=3ca9ad1869;";
            String query = "select * from [Donations]";
            try
            {   
            java.sql.Connection con =DriverManager.getConnection(url, "","");
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            while (rs.next())
            {

            System.out.println("Account No: " + rs.getString(1));
            System.out.println("Surname: " + rs.getString(2));
            System.out.println("First Name: " + rs.getString(3));
            }
            }
            catch(SQLException ex)
            {
            while (ex!=null)
            {
            System.out.println ("SQL Exception: " + ex.getMessage ());
            ex = ex.getNextException();
            }
            }
            catch(java.lang.Exception ex)
            {
            ex.printStackTrace();
            }

我尝试运行代码,但我收到了错误消息......这是:

  

SQL异常:UCAExc ::: 3.0.6给定文件不存在:   HTTP?:\ www.filetolink.com \下载\ H = e6dc57e3485defa7c53e1c968a87fb1f& T公司= 1467139906&安培; F = 3ca9ad1869

所以我要求的是:

1.如何使用访问数据库发布网站,让服务器和网站访问数据库? (服务器和网站不在同一台机器或计算机上......)

2.如果我的问题的答案是我不能......那么我该怎么办?其他建议?用于具有可由远程服务器(Java应用程序)和A网站(Asp.Net)访问的数据库

1 个答案:

答案 0 :(得分:0)

MS Access是桌面数据库,而不是服务器数据库管理系统。如果程序想要访问这样的数据库,则数据库文件必须位于本地或网络文件系统上。因此,如果您的两个应用程序在同一个Intranet中的不同计算机上运行,​​那么将数据库文件放在网络文件系统上将是一个解决方案。

但是:MS Access从未打算用作Web应用程序的后端数据库。您应该使用真正的服务器数据库,如MS SQL Server,PostgreSQL或MySQL。然后您的应用程序可以通过网络协议访问数据库。从理论上讲,可以将数据库端口打开到Internet,以便您可以从任何地方进行连接。但出于安全原因,不建议这样做。

因此,如果您的两个应用程序没有在同一个Intranet中运行,最好创建一些Web服务,让其他程序调用这些Web服务来获取所需的信息。

相关问题