[英]Java Wont connect to database no matter what driver
import java.sql.*;
public class Connect
{
public static void main (String[] args)
{
Connection conn = null;
try
{
String userName = "root";
String password = "password123!";
String url = "jdbc:oracle:thin:@localhost:3306:procomport";
//Class.forName ("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, userName, password);
//Connection connection = DriverManager.getConnection(url , userName, password);
System.out.println ("Database connection established");
}
catch (Exception e)
{
System.err.println ("Cannot connect to database server");
}
finally
{
if (conn != null)
{
try
{
conn.close ();
System.out.println ("Database connection terminated");
}
catch (Exception e) { /* ignore close errors */ }
}
}
}
}
這是我的代碼,我有多個不同的數據庫,但是它不會連接到其中的任何數據庫,這是什么問題? 我不斷收到錯誤消息,它無法連接到數據庫。 盡管我可以使用其他管理工具連接到它,但是這是驅動程序問題嗎? 我怎么能知道我是否有必要的司機?
您提供的用於連接數據庫的代碼不會同時連接MySQL或Oracle,因為這是嘗試將兩者都連接的一堆雜燴。
對於Oracle,代碼應類似於:
String userName = "root";
String password = "password123!";
String url = "jdbc:oracle:thin:@localhost:1521:procomport";
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, userName, password);
(假設您在Oracle上有一個名為root
的用戶,並且Oracle SID是procomport
)。 特別注意端口號的更改:MySQL通常使用3306
,Oracle使用1521
。
對於MySQL,連接代碼應如下所示:
String userName = "root";
String password = "password123!";
String url = "jdbc:mysql://localhost:3306/procomport";
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, userName, password);
(假設您的MySQL數據庫稱為procomport
)。 注意連接URL和驅動程序類名稱的不同樣式。
Oracle驅動程序通常在一個名為ojdbc6.jar
的JAR文件中,而MySQL在一個名為mysql-connector-java-5.1.18-bin.jar
的JAR文件中。
最后,當你寫類似
catch (Exception e)
{
System.err.println ("Cannot connect to database server");
}
你真的沒有在幫助自己。 異常e
幾乎肯定會包含您的數據庫連接代碼無法正常工作的原因,但是,通過故意忽略它,您將更加難以發現錯誤所在。
老實說,我很想聲明main
方法throws Exception
(通過將其添加到public static void main...
行的末尾),然后可以刪除無用的catch
塊。 如果在main
內引發了異常且未對其進行處理,則JVM將在退出之前為您打印堆棧跟蹤。
在您之后:
System.err.println();
放置:
e.printStacktrace();
然后,您將看到真正的錯誤消息。 驅動程序類可能不在類路徑中。
希望這個能對您有所幫助
Class.forName("oracle.jdbc.driver.OracleDriver");
oracle.jdbc.driver.OracleDriver
”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.