1.首先要去Microsoft官網(wǎng)下載sqljdbc2.0驅(qū)動(dòng)——Microsoft SQL Server JDBC Driver 2.0.exe,很小大概就4M,解壓后里面有2個(gè)Jar包,sqljdbc4.jar和sqljdbc.jar,這兩個(gè)都一樣,只是針對(duì)你的JDK的版本的不同,如果你是JDK6.0直接導(dǎo)入sqljdbc4.jar,以下版本的導(dǎo)入sqljdbc.jar,如果怕麻煩的,兩個(gè)都導(dǎo)進(jìn)去也行。
2.包導(dǎo)完了,現(xiàn)在啟動(dòng)SQL配置器,SQL2000的默認(rèn)端口是1433,所以只要開啟端口就能連得上,但08的端口據(jù)說(shuō)是動(dòng)態(tài)的,具體的本人也不清楚,就是因?yàn)檫@個(gè)端口我也被整了2天,最后終于連上了。
打開配置器:
將IP ALL的TCP動(dòng)態(tài)端口(默認(rèn)1163)改為1433,不改也行,因?yàn)榇蟛糠秩说牧?xí)慣是用默認(rèn)的1433,在IP2已啟用選擇——是,確定。
同樣的方法,開啟客戶端的TCP/IP,端口也為1443,如圖:
然后在DOS命令中輸入測(cè)試 telnet 127.0.0.1 1433,
如果結(jié)果只有一個(gè)光標(biāo)在閃動(dòng),那么就說(shuō)明127.0.0.1 1433端口已經(jīng)打開。
如果出現(xiàn)連接主機(jī)端口1433沒(méi)打開,久要換端口。
一ODBC建立數(shù)據(jù)源
1 利用Java應(yīng)用程序訪問(wèn)SQL Server2000數(shù)據(jù)庫(kù)
(1)建立數(shù)據(jù)庫(kù)
啟動(dòng)“Microsoft SQL Server2000”,打開“企業(yè)管理器”在“數(shù)據(jù)庫(kù)”中建立名為“學(xué)生管理系統(tǒng)”的數(shù)據(jù)庫(kù),并在其下制作名為“學(xué)生信息”的數(shù)據(jù)表,如圖1示。
(2)建立(ODBC)數(shù)據(jù)源和驅(qū)動(dòng)程序
在控制面板上通過(guò)“管理工具”的“數(shù)據(jù)源(ODBC)”打開“ODBC數(shù)據(jù)源管理器”對(duì)話框,單擊“系統(tǒng)DSN”選項(xiàng)卡,然后單擊“添加”按鈕,得到“創(chuàng)建數(shù)據(jù)源”對(duì)話框,選擇“SQL Server”并單擊“完成”按鈕,在出現(xiàn)的“建立新的數(shù)據(jù)源到SQL Server”對(duì)話框中的“數(shù)據(jù)源名稱”項(xiàng)填寫“madata”并選取“服務(wù)器名”,然后單擊“下一步”按鈕,選擇“使用網(wǎng)絡(luò)登錄ID的Windows NT驗(yàn)證”項(xiàng)目,單擊“下一步”按鈕,把默認(rèn)的數(shù)據(jù)庫(kù)改為“mydata”,再單擊“下一步”,單擊“完成”按鈕,然后可以單擊“測(cè)試數(shù)據(jù)源”,成功后,單擊“確定”按鈕,完成了(ODBC)數(shù)據(jù)源和驅(qū)動(dòng)程序的建立。
(3)編寫Java程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
package com.test1; import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class Test extends JFrame{ JPanel jp1,jp2; JLabel jl1; JButton jb1,jb2,jb3,jb4; JTable jt= null ; JScrollPane jsp= null ; JTextField jtf; PreparedStatement ps= null ; Connection ct= null ; ResultSet rs= null ; Vector rowData,columName; public static void main(String args[]) { Test test= new Test(); } public Test() { jp1= new JPanel(); jl1= new JLabel( "請(qǐng)輸入名字:" ); jtf= new JTextField( 10 ); jb1= new JButton( "查詢:" ); jp1.add(jl1); jp1.add(jtf); jp1.add(jb1); jp2= new JPanel(); jb2= new JButton( "添加:" ); jb3= new JButton( "修改:" ); jb4= new JButton( "刪除:" ); jp2.add(jb2); jp2.add(jb3); jp2.add(jb4); columName = new Vector(); columName.add( "學(xué)號(hào)" ); columName.add( "姓名" ); columName.add( "班級(jí)" ); columName.add( "系別" ); columName.add( "年齡" ); columName.add( "性別" ); columName.add( "籍貫" ); rowData = new Vector(); try { Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); ct=DriverManager.getConnection( "jdbc:odbc:mydata" ); ps=ct.prepareStatement( "select *from 學(xué)生信息" ); rs=ps.executeQuery(); while (rs.next()) { Vector hang= new Vector(); hang.add(rs.getString( 1 )); hang.add(rs.getString( 2 )); hang.add(rs.getString( 3 )); hang.add(rs.getString( 4 )); hang.add(rs.getInt( 5 )); hang.add(rs.getString( 6 )); hang.add(rs.getString( 7 )); rowData.add(hang); } } catch (Exception e) { System.out.println( "數(shù)據(jù)庫(kù)加載失敗!" ); } finally { } System.out.println( "數(shù)據(jù)庫(kù)加載成功!" ); jt= new JTable(rowData,columName); jsp= new JScrollPane(jt); this .add(jp1, "North" ); this .add(jsp); this .add(jp2, "South" ); this .setSize( 400 , 300 ); this .setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this .setVisible( true ); } } |
注意其中要引入jar包sqljdbc 2.0
JAVA連接SQL2008 - 似水流年 - 夢(mèng)里花落知多少
現(xiàn)在進(jìn)入正題
啟動(dòng)MyEclipse 8.5——創(chuàng)建JAVA項(xiàng)目——記住導(dǎo)入sqljdbc4.jar
代碼如下
我們用SQL驗(yàn)證的sa登錄(前提要打開混合模式登錄這里不在贅述)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
import java.sql.*; public class javaConSQL { public static void main(String[] args) { String JDriver= "com.microsoft.sqlserver.jdbc.SQLServerDriver" ; //SQL數(shù)據(jù)庫(kù)引擎 String connectDB= "jdbc:sqlserver://...:;DatabaseName=Mydb" ;//數(shù)據(jù)源 try { Class.forName(JDriver); //加載數(shù)據(jù)庫(kù)引擎,返回給定字符串名的類 } catch (ClassNotFoundException e) { //e.printStackTrace(); System.out.println( "加載數(shù)據(jù)庫(kù)引擎失敗" ); System.exit(); } System.out.println( "數(shù)據(jù)庫(kù)驅(qū)動(dòng)成功" ); try { String user= "sa" ; String password= "sql" ; Connection con=DriverManager.getConnection(connectDB,user,password); //連接數(shù)據(jù)庫(kù)對(duì)象 System.out.println( "連接數(shù)據(jù)庫(kù)成功" ); Statement stmt=con.createStatement(); //創(chuàng)建SQL命令對(duì)象 //創(chuàng)建表 System.out.println( "開始創(chuàng)建表" ); String query= "create table TABLE(ID NCHAR(),NAME NCHAR())" ; //創(chuàng)建表SQL語(yǔ)句 stmt.executeUpdate(query); //執(zhí)行SQL命令對(duì)象 System.out.println( "表創(chuàng)建成功" ); //輸入數(shù)據(jù) System.out.println( "開始插入數(shù)據(jù)" ); String a= "INSERT INTO TABLE VALUES('','旭哥')" ; //插入數(shù)據(jù)SQL語(yǔ)句 String a= "INSERT INTO TABLE VALUES('','偉哥')" ; String a= "INSERT INTO TABLE VALUES('','張哥')" ; stmt.executeUpdate(a); //執(zhí)行SQL命令對(duì)象 stmt.executeUpdate(a); stmt.executeUpdate(a); System.out.println( "插入數(shù)據(jù)成功" ); //讀取數(shù)據(jù) System.out.println( "開始讀取數(shù)據(jù)" ); ResultSet rs=stmt.executeQuery( "SELECT * FROM TABLE" ); //返回SQL語(yǔ)句查詢結(jié)果集(集合) //循環(huán)輸出每一條記錄 while (rs.next()) { //輸出每個(gè)字段 System.out.println(rs.getString( "ID" )+ "\t" +rs.getString( "NAME" )); } System.out.println( "讀取完畢" ); //關(guān)閉連接 stmt.close(); //關(guān)閉命令對(duì)象連接 con.close(); //關(guān)閉數(shù)據(jù)庫(kù)連接 } catch (SQLException e) { e.printStackTrace(); //System.out.println("數(shù)據(jù)庫(kù)連接錯(cuò)誤"); System.exit(); } } } |
MyEclipse8.5 運(yùn)行結(jié)果:
打開SQL2008企業(yè)管理器
執(zhí)行SQL語(yǔ)句
1
2
3
|
USE Mydb GO SELECT * FROM TABLE1 |
結(jié)果為:
說(shuō)明已經(jīng)成功連接SQL,并在數(shù)據(jù)庫(kù)Mydb創(chuàng)建表TABLE1
謝謝!有哪里不正確的地方,去哪個(gè)讀者指出,互相學(xué)習(xí)