Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建无DSNL连接时出现Java SQL异常_Java_Sql_Jdbc_Odbc - Fatal编程技术网

创建无DSNL连接时出现Java SQL异常

创建无DSNL连接时出现Java SQL异常,java,sql,jdbc,odbc,Java,Sql,Jdbc,Odbc,这是我的密码: package dsnless; import java.sql.*; //////////////////////////////////////////////////////////// //This class will be used to fire queries to the database //////////////////////////////////////////////////////////// public class Query { p

这是我的密码:

package dsnless;
import java.sql.*;
////////////////////////////////////////////////////////////
//This class will be used to fire queries to the database
////////////////////////////////////////////////////////////
public class Query {
    public Query(){
        String pathToDatabase = "E:/Eclipse Projects/JDBC/src/datasouce/School.mdb";
        String database = "jdbc:odbc:Driver="+
                      "{Microsoft Access Driver(*.mdb,*.accdb)};" +
                      ":DBQ=" + pathToDatabase;
        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            con = DriverManager.getConnection(database);
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        new Query();
    }
    Connection con;
    Statement s;
    ResultSet r;
}//class Query end  
例外情况如下:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] DRIVER keyword syntax error
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at dsnless.Query.<init>(Query.java:14)
    at dsnless.Query.main(Query.java:20)  
java.sql.SQLException:[Microsoft][ODBC驱动程序管理器]驱动程序关键字语法错误
位于sun.jdbc.odbc.JdbcOdbc.createSQLException(未知源)
位于sun.jdbc.odbc.JdbcOdbc.standardError(未知源)
位于sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(未知源)
位于sun.jdbc.odbc.JdbcOdbcConnection.initialize(未知源)
位于sun.jdbc.odbc.JdbcOdbcDriver.connect(未知源)
位于java.sql.DriverManager.getConnection(未知源)
位于java.sql.DriverManager.getConnection(未知源)
在dsnless.Query.(Query.java:14)
位于dsnless.Query.main(Query.java:20)
还有一个新的例外:

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at dsnless.Query.<init>(Query.java:14)
    at dsnless.Query.main(Query.java:20)
[Microsoft][ODBC驱动程序管理器]未找到数据源名称,也未指定默认驱动程序
位于sun.jdbc.odbc.JdbcOdbc.createSQLException(未知源)
位于sun.jdbc.odbc.JdbcOdbc.standardError(未知源)
位于sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(未知源)
位于sun.jdbc.odbc.JdbcOdbcConnection.initialize(未知源)
位于sun.jdbc.odbc.JdbcOdbcDriver.connect(未知源)
位于java.sql.DriverManager.getConnection(未知源)
位于java.sql.DriverManager.getConnection(未知源)
在dsnless.Query.(Query.java:14)
位于dsnless.Query.main(Query.java:20)
问题: 请告诉我怎么了。我怀疑这是
字符串数据库
,但这仍然只是猜测

我自己搞定了
我将支持的扩展从
(*.mdb,*.accdb)
更改为只支持
(*.mdb)
,并且成功了。你知道为什么会这样吗?

这里有一个额外的冒号,把它去掉

String database = "jdbc:odbc:Driver="+
              "{Microsoft Access Driver(*.mdb,*.accdb)};" +
              ":DBQ=" + pathToDatabase;
               ^

路径中的空间可能有问题。另外,
datasouce
是拼写错误还是其中一个文件夹的实际名称?请使用反斜杠作为文件路径,并包含双引号以屏蔽空格:
pathToDatabase=“\”E:\\Eclipse项目\\JDBC\\src\\datasouce\\\“”
(并且像reimeus指出的那样去掉冒号)@a_horse_,没有名字heehaw!!浏览编辑部分,查看
锁定它的部分,我自己
错误与扩展名有关。请仔细阅读
一节,我自己
看起来您的驱动程序不支持ACCDB文件,我如何添加对ACCDB文件的支持?您使用的是什么版本的MS Access?Office 2010的32位版本