標籤:value auth 目錄 cti img ros 插入 雙擊 java
下載jdbc驅動包
,我下載的是exe版本的,其實是格自解壓包。下載完畢之後,雙擊運行,會解壓在目前的目錄下。
Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\chs\auth\x64\sqljdbc_auth.dll檔案 複製到C:\Windows\SysWOW64目錄下。(64bit系統)
Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\chs\auth\x86\sqljdbc_auth.DLL 檔案 複製到 C:\Windows\System32 (32位系統,未經過驗證)
然後將 Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\chs\sqljdbc4/jar 包匯入到項目中。
原始碼
1 import java.sql.*; 2 public class Conn{ 3 public static void main(String[] args) { 4 String JDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; 5 //SQL資料庫引擎 6 String connectDB="jdbc:sqlserver://ABYSS-PC\\MYABYSS:64160;DatabaseName=master"; 7 //資料來源 !!!!注意若出現載入或者串連資料庫失敗一般是這裡出現問題 8 // 我將在下面詳述 9 try {10 //載入資料庫引擎,返回給定字串名的類11 Class.forName(JDriver);12 }catch(ClassNotFoundException e)13 {14 //e.printStackTrace();15 System.out.println("載入資料庫引擎失敗");16 System.exit(0);17 } 18 System.out.println("資料庫驅動成功");19 20 try {21 String user="sa"; 22 //這裡只要注意使用者名稱密碼不要寫錯即可23 String password="*liluotinghua33*";24 Connection con=DriverManager.getConnection(connectDB,user,password);25 //串連資料庫物件26 System.out.println("串連資料庫成功");27 Statement stmt=con.createStatement();28 //建立SQL命令對象29 30 //建立表31 System.out.println("開始建立表");32 //建立表SQL語句33 String query= "create table TABLE1(ID 34 NCHAR(2),NAME NCHAR(10))";35 stmt.executeUpdate(query);//執行SQL命令對象36 System.out.println("表建立成功");37 38 //輸入資料39 System.out.println("開始插入資料");40 String a1="INSERT INTO TABLE1 VALUES(‘1‘,‘旭哥‘)";41 //插入資料SQL語句42 String a2="INSERT INTO TABLE1 VALUES(‘2‘,‘偉哥‘)";43 String a3="INSERT INTO TABLE1 VALUES(‘3‘,‘張哥‘)";44 stmt.executeUpdate(a1);//執行SQL命令對象45 stmt.executeUpdate(a2); 46 stmt.executeUpdate(a3);47 System.out.println("插入資料成功");48 49 //讀取資料50 System.out.println("開始讀取資料");51 ResultSet rs=stmt.executeQuery("SELECT * FROM 52 TABLE1");//返回SQL語句查詢結果集(集合)53 //迴圈輸出每一條記錄54 while(rs.next()){55 //輸出每個欄位56 System.out.println(rs.getString("ID")+"\t"+rs.getString("NAME"));57 }58 System.out.println("讀取完畢");59 60 //關閉串連61 stmt.close();//關閉命令對象串連62 con.close();//關閉資料庫連接63 }catch(SQLException e){64 e.printStackTrace();65 System.out.print(e.getErrorCode());66 //System.out.println("資料庫連接錯誤");67 System.exit(0);68 }69 }70 }
出現的問題
String connectDB="jdbc:sqlserver://ABYSS-PC\\MYABYSS:64160;DatabaseName=master";
先講解一下這段代碼。
其中ABYSS-PC\\MYABYSS 表示伺服器名字,兩個反斜線表示轉義。什麼是伺服器的名字呢,如:
64160 表示連接埠號碼,一般情況下預設的是1433,特殊情況下如我的便是隨機分配的。
驗證連接埠號碼:1、開啟工作管理員,選擇服務,查看SQL Server執行個體的 PID號為7284,我的電腦運行了兩個資料庫執行個體,我只串連第一個執行個體。2、開啟命令提示字元。輸入 netstat -ano。 7284所對應的連接埠號碼是64160.DatabaseName=master; master表示資料來源。。 在運行還出現一個問題就是,用windows身分識別驗證可以登入資料庫,但是使用SQL Server身分識別驗證卻提示失敗。一般出現錯誤會報告錯誤碼,我這裡報告的錯誤碼是18456 。你可以用Google搜尋一下: SQL Server 2008 錯誤碼 18456.這裡我簡單的提供一下解決辦法。首先windows帳號是可以登入的。
尋找問題的過程:
第一步: 啟動所有與SQL有關的服務,問題依舊;
第二步: 查看windows防火牆,被預設啟動了,不啟動選擇項被Disabled。兩個提示“由於安全考慮,某些設定由組策略控制”“Windows防火牆正在使用您的網域設定”,先用gpedit.msc打組策略編輯器,機算機配置--系統管理範本--網路--網路連接--Windows防火牆--標準設定檔,查看右邊各選項屬性,都是未配置狀態,問題不在這裡。
第三步:用windows帳號登入,串連成功後,右擊執行個體,選擇屬性->安全性。確定“伺服器身分識別驗證”選擇的是“SQL Server和Windows身分識別驗證模式”通過這三個步驟,問題就差不多解決了。還以一點,別忘了給sa使用者登入許可權。雙擊sa帳號選擇狀態。
JDBC串連SQL Server