2014-10-29 219 views
0

我新手Java DB的編碼...Java的SQL連接被拒絕例外

這是我的Java代碼

Connection conn = null; 
Statement stmt = null; 
Class.forName("com.mysql.jdbc.Driver"); 
System.out.println("Connecting to database..."); 
conn = DriverManager.getConnection("jdbc:mysql://localhost/EMP",USER,PASS); 
System.out.println("Creating statement..."); 
stmt = conn.createStatement(); 
String sql; 

這是我收到的例外:

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/tiles].[default]] (http-localhost-127.0.0.1-8080-1) Servlet.service() for servlet default threw exception: java.net.ConnectException: Connection refused: connect 

我我的mySQL服務器也在運行,並且包含名爲EMP的簡單表。我沒有解釋get連接URL的問題。任何人都可以簡單解釋一下嗎

謝謝。

+0

「連接被拒絕」= db的未運行,tcp端口被防火牆,套接字在錯誤的地方,等等等等等等。 – 2014-10-29 14:17:05

+0

查看服務器日誌文件以瞭解發生了什麼。 – Jens 2014-10-29 14:18:34

+3

您是否嘗試使用MySQL驅動程序連接到SQL Express服務器? – RealSkeptic 2014-10-29 14:21:11

回答

1

您正在爲數據庫使用錯誤的驅動程序。每個數據庫(MySQL,PostgreSQL,SQL Server,Oracle等)都有不同的驅動程序,它們是JDBC和特定數據庫的通信協議之間的連接。

您需要Microsoft SQL Server驅動程序。如果您還沒有它,可以從這裏下載並安裝它:Microsoft down page for JDBC 4.0 driver

以下是關於如何將jar添加到您的類路徑以及使用哪個URL的instructions。請注意,在JDBC 4.0及更高版本中,forName不再需要。

0

從我可以看到和理解的是,你錯過了港口。

你這樣做它:

康恩=的DriverManager.getConnection( 「JDBC:MySQL的://本地主機:3306/EMP」,USER,PASS);這是你的連接器 的mysql:這是您當前安裝的數據庫 //主機名:該機器託管服務器 PORTNUMBER:

URL可以以這種方式

JDBC來形容這使得港口連接服務器 /databaseName:它是您創建的數據庫。

希望這是有益的

+0

和@RealSkeptic進一步解釋,嘗試驗證您的路徑,並確保您的數據庫已正確安裝。 – mkwilfreid 2014-10-29 14:41:55

0

下載微軟的JDBC驅動程序,並使用Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);

如果問題仍然存在啓用TCP/IP網絡協議,這是默認禁用,並設置TCP/IP端口1433這是默認的端口號。