首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jdbc (.mdb)数据库操作

jdbc (.mdb)数据库操作
EN

Stack Overflow用户
提问于 2012-03-29 00:39:44
回答 2查看 1.8K关注 0票数 3

背景:使用网络解决方案托管的Apache服务器上运行的应用程序。Friend/Customer坚持使用Access数据库而不是SQL数据库。

当前的问题:编写了一个Java测试程序,以确保在我开始编写整个后端之前能够连接到数据库。当我在apache服务器的JVM上运行这段代码时,最终产品将托管:

代码语言:javascript
复制
import java.sql.*;
import java.io.*;
public class test {
    public static void main(String[] args) {
        try {
            Class driverClass = Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            DriverManager.registerDriver((Driver) driverClass.newInstance());

            // set this to a MS Access DB you have on your machine
            String filename = new File(".").getCanonicalPath() + "/ITEMS.mdb";


            String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
            database+= filename.trim(); // add on to the end 
            // now we can get the connection from the DriverManager

            System.out.println(database);

            Connection conn = DriverManager.getConnection( database );
        } catch (Exception e) {
            System.out.println("Error: " + e.getMessage() + " " + e.getLocalizedMessage());
            e.printStackTrace();
        }
    }
}

我在行连接conn= DriverManager.getConnection(数据库)上得到一个空指针异常

下面是堆栈跟踪:

代码语言:javascript
复制
java.lang.NullPointerException

        at sun.jdbc.odbc.JdbcOdbcDriver.initialize(JdbcOdbcDriver.java:436)

        at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:153)

        at java.sql.DriverManager.getConnection(DriverManager.java:582)

        at java.sql.DriverManager.getConnection(DriverManager.java:207)

        at test.main(test.java:20)

为了编写这个测试,我使用它作为我的主要源代码:http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=2691&lngWId=2

EN

回答 2

Stack Overflow用户

发布于 2013-09-19 15:45:54

代码语言:javascript
复制
String strconnect="jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ="
Sring filename="some path";
StringBuilder a =new StringBuilder();
a.append(strconnect);
a.append(filename);
String db = a.toString();   
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c= DriverManager.getrConnection(db,"","")
Statement stmt = c.createStament();
String query = "some query";
stmt.executeQuery(query);
c.close();

永远不会获得规范路径,要么指定访问文件的路径,要么使用JFile探索和获取路径

也不要忘记关闭连接

票数 0
EN

Stack Overflow用户

发布于 2012-03-29 06:50:57

既然您提到了apache,我将假定服务器正在运行Linux或BSD。

在这种情况下,请看以下内容:

linux上没有提供访问的默认驱动程序,除非安装JDBC,否则JDBC将无法工作。

除非有一个非常特殊和压倒性的理由使用Access数据库作为linux服务器上网站的后端,否则告诉您的朋友,这在技术上甚至经济上都不一致。

如果您需要服务器上的轻量级数据库,请使用SQLite:它是免费的,对从linux中的Java连接到它有很好的支持,有很好的工具(甚至浏览器插件),如果您的朋友希望偶尔获得访问备份,您可以随时使用将该数据库转换为

否则,就像每个人一样,选择PostgreSQL或MySQL (通常有一个很好的理由)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9917674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档