1. 程式人生 > >JAVA之JDBC的相關問題(無法與SQLServer連線的解決)

JAVA之JDBC的相關問題(無法與SQLServer連線的解決)

昨天看到了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,重新加入專案,重新寫程式碼

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  catch一下沒有任何異常,,

下面就連線資料庫插入一個表試試吧

		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");
		}

編譯執行無異常


以上是我本人遇到的問題,算挺多的

歡迎指正。