java jdbc mysql url_java – 如何生成JDBC数据库URL?
我今天已經(jīng)研究了大約3個(gè)小時(shí),我覺得我很接近,但我有幾個(gè)問題.我到目前為止找到的最好的信息來源是:
https://stackoverflow.com/a/2840358,但它沒有回答我的所有問題.
一點(diǎn)背景:我正在使用Microsoft SQL Server 2014,并且我已經(jīng)驗(yàn)證了IP地址127.0.0.1處于活動(dòng)狀態(tài)并使用端口1433啟用.我在同一臺(tái)計(jì)算機(jī)上通過SQL Server程序連接到數(shù)據(jù)庫沒有問題,但我正在嘗試通過我正在編寫的Java程序進(jìn)行連接,并且它當(dāng)前正在發(fā)出此錯(cuò)誤:com.microsoft.sqlserver.jdbc.SQLServerException:端口號(hào)1433 / R2M_Database無效.我對此感到困惑,因?yàn)槲抑蓝丝?433是正確的,我知道我要連接的數(shù)據(jù)庫叫做R2M_Database.現(xiàn)在,這是我的問題以及我的源代碼.
1.)“mysql”和“sqlserver”子協(xié)議之間有什么區(qū)別,我怎么知道使用哪個(gè)? (我很確定我應(yīng)該使用sqlserver,但以防萬一)
2.)我如何確保使用正確的主機(jī)名? (我很確定127.0.0.1 / localhost是我應(yīng)該使用的那個(gè),但是我怎樣才能從其他機(jī)器運(yùn)行這個(gè)程序來訪問數(shù)據(jù)庫?)
3.)是否存在任何可能導(dǎo)致防火墻或密碼要求的外部問題? (我相當(dāng)確定用戶名和密碼是正確的,因?yàn)樗鼈兪俏矣脕碓贛icrosoft 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);
}
}
}
我做了一個(gè)輕微的語法更改(; databaseName =而不是/),現(xiàn)在我收到此錯(cuò)誤:
com.microsoft.sqlserver.jdbc.SQLServerException:用戶’RSquaredMacro’登錄失敗. ClientConnectionId:35281a40-0f87-42e4-BC46-b9a81a371529
最佳答案 > mysql是一個(gè)完全不同的數(shù)據(jù)庫服務(wù)器.不要將它用于SQL Server.
>您需要為數(shù)據(jù)庫服務(wù)器提供公共地址.只要所有客戶都可以看到它,就可以使用ip或主機(jī)名.如果你沒有,你可以嘗試使用dyndns.org或類似的東西.請注意,您的客戶仍需要能夠訪問網(wǎng)絡(luò)上的服務(wù)器(潛在的防火墻問題).在不了解您的情況的情況下很難說更多.
>防火墻可能是一個(gè)問題,但這不太可能是localhost.我猜測問題在于TCP / IP偵聽器,用戶名,密碼或數(shù)據(jù)庫名稱設(shè)置.
還有一些附注:
>您不需要包含1433端口號(hào).
>打印整個(gè)堆棧跟蹤將幫助您進(jìn)行調(diào)試.
(見下面的代碼)
>您應(yīng)該為Connection聲明一個(gè)變量并確保
它被關(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 的工作流程
- 下一篇: latex练习