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
的值。