【问题标题】:Java database connectivity exceptionJava 数据库连接异常
【发布时间】:2013-10-26 23:58:24
【问题描述】:

我正在将 java 连接到 Microsoft access 数据库,但出现以下异常

java.sql.SQLException: [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序

try{
     String ProjectPath= System.getProperties().getProperty("user.dir");
     System.out.println(ProjectPath);
     String path,fullstring;
     path=ProjectPath+"\\data.mdb";
     fullstring="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" +path;
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     Connection con=DriverManager.getConnection(fullstring);
     System.out.println("Connected");
 }catch(Exception e){

     System.out.println("Connected Error: "+ e);
     }

我该如何解决我的问题?

【问题讨论】:

  • 跑题了,但是你用过 JPA 吗?真的比JDBC舒服多了。看一看,你会喜欢的 ;)
  • 您是否尝试过通过 IDE 进行连接?网址是什么?
  • 您的 Java 应用程序是否在 64 位 Java 虚拟机 (JVM) 中运行?
  • 是的,它正在 64 位 Java 虚拟机上运行

标签: java exception ms-access jdbc jdbc-odbc


【解决方案1】:

{Microsoft Access Driver (*.mdb)} 是旧版 Microsoft Jet 驱动程序的名称,它仅适用于 32 位应用程序。 (没有 64 位版本的 Jet 数据库引擎或 Jet ODBC 驱动程序。)

要从 64 位应用程序连接 .mdb.accdb 文件,您需要从 here 下载并安装 64 位版本的 Access 数据库引擎(又称“ACE”),然后参考使用驱动程序名称{Microsoft Access Driver (*.mdb, *.accdb)} 在您的应用程序中添加它。

【讨论】:

    【解决方案2】:
        import java.sql.*;
        class dbTst {
    public static void main(String args[]) throws Exception{
        try{
    
    
        //Driver for JDBC-ODBC Bridge
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    
        //Establishing the Connection through DSN
        Connection con= DriverManager.getConnection("jdbc:odbc:db","","");
    
        //Creating the Statement Object
        Statement st=con.createStatement();
    
    
        ResultSet rs=st.executeQuery("Select * from aman");
    
        while(rs.next()==true){
    
        System.out.println(rs.getString("name")+" - " + rs.getString("basic"));
        }
    
        rs.close();
        st.close();
        con.close();
        }
                catch(Exception ee){
                    System.out.println(ee.getMessage());
        }
    }
    }
    

    【讨论】:

    • 它给出了同样的异常 [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    【解决方案3】:

    我认为你想以某种奇怪的方式联系..

    http://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html

    代码(使用 DriverManager):

    public Connection getConnection() throws SQLException {
        Connection conn = null;
        Properties connectionProps = new Properties();
        connectionProps.put("user", this.userName);
        connectionProps.put("password", this.password);
    
        if (this.dbms.equals("mysql")) {
            conn = DriverManager.getConnection(
                   "jdbc:" + this.dbms + "://" +
                   this.serverName +
                   ":" + this.portNumber + "/",
                   connectionProps);
        } else if (this.dbms.equals("derby")) {
            conn = DriverManager.getConnection(
                   "jdbc:" + this.dbms + ":" +
                   this.dbName +
                   ";create=true",
                   connectionProps);
        }
        System.out.println("Connected to database");
        return conn;
    }
    

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
    • 也可以通过例如连接。 Eclipse 透视图称为:数据库透视图。
    猜你喜欢
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多