java jdbc mysql url_java – 如何生成JDBC数据库URL?
我今天已經(jīng)研究了大約3個小時,我覺得我很接近,但我有幾個問題.我到目前為止找到的最好的信息來源是:
https://stackoverflow.com/a/2840358,但它沒有回答我的所有問題.
一點背景:我正在使用Microsoft SQL Server 2014,并且我已經(jīng)驗證了IP地址127.0.0.1處于活動狀態(tài)并使用端口1433啟用.我在同一臺計算機上通過SQL Server程序連接到數(shù)據(jù)庫沒有問題,但我正在嘗試通過我正在編寫的Java程序進行連接,并且它當(dāng)前正在發(fā)出此錯誤:com.microsoft.sqlserver.jdbc.SQLServerException:端口號1433 / R2M_Database無效.我對此感到困惑,因為我知道端口1433是正確的,我知道我要連接的數(shù)據(jù)庫叫做R2M_Database.現(xiàn)在,這是我的問題以及我的源代碼.
1.)“mysql”和“sqlserver”子協(xié)議之間有什么區(qū)別,我怎么知道使用哪個? (我很確定我應(yīng)該使用sqlserver,但以防萬一)
2.)我如何確保使用正確的主機名? (我很確定127.0.0.1 / localhost是我應(yīng)該使用的那個,但是我怎樣才能從其他機器運行這個程序來訪問數(shù)據(jù)庫?)
3.)是否存在任何可能導(dǎo)致防火墻或密碼要求的外部問題? (我相當(dāng)確定用戶名和密碼是正確的,因為它們是我用來在Microsoft SQL Server 2014中成功獲得連接的用戶名和密碼)
編輯:
import java.sql.DriverManager;
import java.io.BufferedReader;
import java.io.FileReader;
import org.apache.ibatis.jdbc.ScriptRunner;
public class SQLTest {
public static void main(String[] args){
String script = "CreatePersons.sql";
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
new ScriptRunner(DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=R2M_Database", userName, password))
.runScript(new BufferedReader(new FileReader(script)));
} catch (Exception e) {
System.err.println(e);
}
}
}
我做了一個輕微的語法更改(; databaseName =而不是/),現(xiàn)在我收到此錯誤:
com.microsoft.sqlserver.jdbc.SQLServerException:用戶’RSquaredMacro’登錄失敗. ClientConnectionId:35281a40-0f87-42e4-BC46-b9a81a371529
最佳答案 > mysql是一個完全不同的數(shù)據(jù)庫服務(wù)器.不要將它用于SQL Server.
>您需要為數(shù)據(jù)庫服務(wù)器提供公共地址.只要所有客戶都可以看到它,就可以使用ip或主機名.如果你沒有,你可以嘗試使用dyndns.org或類似的東西.請注意,您的客戶仍需要能夠訪問網(wǎng)絡(luò)上的服務(wù)器(潛在的防火墻問題).在不了解您的情況的情況下很難說更多.
>防火墻可能是一個問題,但這不太可能是localhost.我猜測問題在于TCP / IP偵聽器,用戶名,密碼或數(shù)據(jù)庫名稱設(shè)置.
還有一些附注:
>您不需要包含1433端口號.
>打印整個堆棧跟蹤將幫助您進行調(diào)試.
(見下面的代碼)
>您應(yīng)該為Connection聲明一個變量并確保
它被關(guān)閉了.例:
Connection c = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
c = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433/R2M_Database", userName, password);
new ScriptRunner(c).runScript(new BufferedReader(new FileReader(script)));
} catch (Exception e) {
e.printStackTrace();
} finally {
if (c != null) try { c.close(); } catch (Exception e) { }
}
總結(jié)
以上是生活随笔為你收集整理的java jdbc mysql url_java – 如何生成JDBC数据库URL?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZooKeeper 的工作流程
- 下一篇: oracle数据库支持2颗cpu,2.3