JAVA之JDBC的相關問題(無法與SQLServer連線的解決)
阿新 • • 發佈:2019-01-09
昨天看到了JDBC的那一章,要用到資料庫,就百度了SQL下載安裝了,安裝完之後,才知道還要下載驅動,於是百度又下了mysql....jar的包,又搜尋如何加入到專案中,
一切完成之後就開始載入去驅動連線資料庫了
問題就來了。。
首先try catch 一下 class.forName("com.mysql.driver")是沒有異常的
也就是說,是這幾條程式碼出了問題,再把connection try catch,發現有SQL異常
String url = "jdbc:mysql://127.0.0.1:11588/test728"; String user = "sa"; String password = "123456"; Connection con = DriverManager.getConnection(url,user,password);
也就是說這四句至少有一個出了問題。
首先我可以確定sa和密碼都能登入,於是問題應該在url或者connection上,也有可能connection沒問題,是getConnection的引數的url出了問題,。。。
在這裡要插入一個問題,就是資料庫佔用的埠問題。百度了一下有兩種方法。
方法一:
開啟資料庫,新建查詢,輸入code,
可以看到埠號為11588
方法二:
在這裡我還要插入一個我遇到的問題,就是IPALL的TCP動態埠是0,,,我的是0,,,
問題是SQLNAME的TCP/IP協議未開啟
解決辦法就是把它開啟,然後再把SQLNAME的服務重新啟動,這是必須的,否則更改無效。
還可以用cmd的netstat -an命令檢視埠是否在使用
可以看到正常使用
把url寫好之後try catch還是報錯了,各種百度之後才發現問題,,,原來我下載的是SQL server 2008 然而url寫的是 mysql 這兩個資料庫不是一家人。。。
於是乎,我又重新下載SQL的jar,重新加入專案,重新寫程式碼
到這裡try catch一下沒有任何異常,,Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url = "jdbc:sqlserver://127.0.0.1:11588;DatabaseName=test728"; String user = "sa"; String password = "123456"; Connection con = DriverManager.getConnection(url,user,password);
下面就連線資料庫插入一個表試試吧
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://127.0.0.1:11588;DatabaseName=test728";
String user = "sa";
String password = "123456";
Connection con = DriverManager.getConnection(url,user,password);
String sql = "insert into dbo.StuInfo (username,password,sex,age) values('張三','123','男',22)";
Statement sta = con.createStatement();
sta.executeUpdate(sql);
con.close();
} catch (SQLException e) {
// TODO: handle exception
System.out.println("error");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("class error");
}
編譯執行無異常
以上是我本人遇到的問題,算挺多的
歡迎指正。