Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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
Java 连接到JDBC返回的url不能为空_Java_Jdbc_Sqlexception - Fatal编程技术网

Java 连接到JDBC返回的url不能为空

Java 连接到JDBC返回的url不能为空,java,jdbc,sqlexception,Java,Jdbc,Sqlexception,你好,我有这个密码: DatabaseManager.init("com.inet.tds.TdsDriver", "jdbc:inetdae:127.0.0.1?database=main", "username", "password", 10); 链接到: public static void init(String JDBCDriver, String parURL, String parUserName, String parPassWord, int maxConnections)

你好,我有这个密码:

DatabaseManager.init("com.inet.tds.TdsDriver", "jdbc:inetdae:127.0.0.1?database=main", "username", "password", 10);
链接到:

public static void init(String JDBCDriver, String parURL, String parUserName, String parPassWord, int maxConnections) throws ClassNotFoundException, SQLException {

    Class.forName(JDBCDriver);
    URL = parURL;
    userName = parUserName;
    passWord = parPassWord;
    openConnection();
}
但这给了我一个缺点:

DatabaseManager.getConnection():java.sql.SQLException:url 不能为空

通过DatabaseManager.class中的此脚本:

import java.sql.*;

public class DatabaseManager {

    private static String URL;
    private static String userName;
    private static String passWord;
    private static Connection connection = null;
public DatabaseManager() {
}
public static void executeSQL(String query, int maxtries) {

    if(maxtries == 0) {
        System.out.println("SQL query failed!");
        System.out.println("Query: "+query);
        return;
    }

    try{
        Connection connection = DatabaseManager.getConnection();
        Statement sm = connection.createStatement();
        sm.execute(query);
        return;
    }
    catch(Exception e) {

        System.out.println("Exception in DatabaseManager.executeSQL: " + e);

        System.out.println("SQL connection lost! Tries left:"+(maxtries-1));
        executeSQL(query, maxtries-1);
        return;
    }

}
public static void flush() {

    userName = null;
    passWord = null;
    if (connection != null) {
        URL = null;
        try {
            connection.close();
        } catch (SQLException sqle) {
            //  a database error occured    
            System.out.println("DatabaseManager.flush() : " + sqle);    
        }
    }
    connection = null;
}
public static Connection getConnection() {

    try {
        if (connection!=null) {
            if (connection.isClosed())
                openConnection();
        } 
        else {
            openConnection();
        }
    } catch (SQLException e) {
            System.out.println("DatabaseManager.getConnection() : " + e);   
        return null;
    }
    return connection;
}
public static String getDriverVersion() {

    String version = "exception";
    try {
        version = ""+DriverManager.getDriver(URL).getMajorVersion();
        version += ".";
        version += DriverManager.getDriver(URL).getMinorVersion();

    } catch (SQLException e)
    {}

    return version;
}
public static void init(String JDBCDriver, String parURL, String parUserName, String parPassWord, int maxConnections) throws ClassNotFoundException, SQLException {

    Class.forName(JDBCDriver);
    URL = parURL;
    userName = parUserName;
    passWord = parPassWord;
    openConnection();
}
public static void openConnection() throws SQLException{

    connection = DriverManager.getConnection(URL, userName, passWord);
}
public static ResultSet readSQL(String query, int maxresults, int maxtries) {

    if(maxtries == 0) {
        System.out.println("SQL query failed!");
        System.out.println("Query: "+query);
        return null;
    }

    int pos = 0;
    try{
        Connection connection = DatabaseManager.getConnection();
        pos = 1;
        Statement sm = connection.createStatement();
        pos = 2;
        sm.setMaxRows(maxresults);
        pos = 3;
        ResultSet rs = sm.executeQuery(query);
        pos = 4;
        return rs;
    }
    catch(Exception e) {

        System.out.println("Exception in DatabaseManager.readSQL ("+pos+"): " + e);
        System.out.println("SQL connection lost! Tries left:"+(maxtries-1));
        return readSQL(query, maxresults, maxtries-1);
    }
}
}
有人知道为什么它告诉我url是空的吗


如果你需要更多的脚本,让我知道

DatabaseManager
不是标准的JDK类,因此不可能知道它应该如何工作。另外,如果
connection=DriverManager.getConnection(URL、用户名、密码)
给出此错误,可以安全地假设您没有按预期使用该类。您可以添加此
DatabaseManager
的来源吗?您在哪里使用
DatabaseManager
code?我看不到它在你的
openConnection
getConnection
方法中使用。在你的
openConnection()
方法中添加一点日志记录,以查看传入的内容。@adarshr-他正在调用
DatabaseManager.getConnection()
,它调用
DatabaseManager.openConnection
,在调用
DriverManager.getConnection
.Ziras时,添加DatabaseManager类的开头,包括所有变量定义。正如@bmorris591所建议的,在调用
DriverManager.getConnection
之前,您可能需要记录
URL
userName
passWord
的值。