JDBC簡介
今天,研究了下JDBC連接SQL Server2008的過程,為了日后學習的方便,就把自己的心得寫出來,供自己日后參考,如果這篇文章對您有所幫助,那就更好了。
首先,大家需要知道的是JDBC僅僅是一個接口,通過JDBC去加載對應(yīng)的驅(qū)動程序,進而來操作數(shù)據(jù)庫。換句話說,JDBC需要依賴對應(yīng)數(shù)據(jù)庫的驅(qū)動程序才可以訪問數(shù)據(jù)庫。所以,當我們在機器上安裝了一個數(shù)據(jù)庫后,應(yīng)用程序是不能直接操作數(shù)據(jù)庫的,只有安裝了對應(yīng)的驅(qū)動程序后,應(yīng)用程序才可以通過驅(qū)動程序去操作數(shù)據(jù)庫。
JDBC全稱:
Java Data Base Connectivity(java數(shù)據(jù)庫連接)
組成JDBC的2個包:
Java.sql和javax.sql
開發(fā)JDBC應(yīng)用時除了需要以上2個包的支持外,還需要導入相應(yīng)JDBC的數(shù)據(jù)庫實現(xiàn)(即數(shù)據(jù)庫驅(qū)動)
JDBC案例實戰(zhàn)
下面我們通過一個簡單的增刪改查案例來看下JDBC如何與數(shù)據(jù)庫交互,今天我們探討的是與SQL Server2008如何交互。因為SQL Server2000的服務(wù)端口默認為1433 不需要配置。而2008的端口為動態(tài)端口,所以我們以2008為例講解。
第一步:搭建實驗環(huán)境
1, 在SQL server 2008中創(chuàng)建一個Myschool數(shù)據(jù)庫,并創(chuàng)建Admin表
Admin表中就兩個字段(LoginId,LoginPwd),并且都是nvarchar類型,由于這個過程比較簡單,我們就不再贅述。
2, 編寫程序,在程序中加載數(shù)據(jù)庫驅(qū)動
我們打開Eclipse或者Myeclipse發(fā)開環(huán)境,新建一個java項目。
我這里以Myeclipse 10.0為例講解。
新建一個java項目,命名為javaJDBC,新建一個Java類,命名為MyFirstCon.java,
然后對項目javaJDBC點擊右鍵添加一個lib文件夾,將sqljdbc4.jar復(fù)制到lib文件夾中。對sqljdbc4點右鍵,出現(xiàn)如下菜單
點擊Add to Build Path,然后導入如下命名空間:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
接下來,我們就可以編寫代碼了,但是上面我們提到SQL Server 2008中端口為動態(tài)的。那么如何使端口成為固定端口呢?我們需要設(shè)定一下:
找到Sql Server下的配置管理器,找到SQL server 網(wǎng)絡(luò)配置,然后找到本機上安裝的數(shù)據(jù)庫實例,如下圖
這里我們選中Happy的協(xié)議,然后雙擊右側(cè)列表中的Tcp/IP,切換到IP地址選項卡,
找到IP地址為127.0.0.1的IP地址,將已啟動屬性設(shè)置為是,
然后找到IPAll節(jié)點,如下圖
然后點擊應(yīng)用,最后點擊確定就可以了。
然后,按照下圖設(shè)置,
將已啟用屬性設(shè)置成是。
切記:設(shè)置完成后要重新啟動SQL Server服務(wù)。
二、編寫代碼
以下代碼均寫在Main方法中
Connection con=null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (Exception e) {
e.printStackTrace();
}
2,獲取與數(shù)據(jù)庫連接
con=DriverManager.getConnection("jdbc:sqlserver://happy//happy:1435;DatabaseName=Myschool","sa","123");
3, 獲取用于向sql發(fā)送命令的statement
Statement stmt=null;
stmt=con.createStatement();
4, 向數(shù)據(jù)庫發(fā)送SQL命令
String sql="insert into admin values('1112','1112') ";
if(stmt.executeUpdate(sql)>0){
System.out.println("新增數(shù)據(jù)成功");
}else {
System.out.println("新增數(shù)據(jù)失敗!");
}
5.關(guān)閉連接
Stmt.close()
Con.close();
好了,第一個新增的案例完成。
在講解下述內(nèi)容前,我們先來看下Statement的常用方法
Statement常用方法
01.executeQuery(String sql):執(zhí)行sql查詢并獲取到ResultSet對象,返回值為ResultSet
02.executeUpdate(String sql):可以執(zhí)行插入、刪除、更新等操作,返回值是執(zhí)行該操作所影響的行數(shù),int類型。
03,execute(String sql):可以執(zhí)行任意SQL語句,然后獲得一個布爾值,表示是否返回Result。
/***************************Update*****************************/
//更新
String sql="update admin set loginpwd='111' where loginid='112'";
stmt.executeUpdate(sql);
/*************************delete*****************************/
//刪除
String sql="delete from admin where loginid='1112'";
stmt.executeUpdate(sql);
/*************************select*****************************/
//查詢
String sql="select * from admin";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString("loginid"));
System.out.println(rs.getString("loginpwd"));
}
PreparedStatement接口
PreparedStatement接口繼承Statement接口,比普通的Statement對象使用起來更加靈活,更有效率,使用方式和Statement相同
這次分享就到這里,如有需要,可以聯(lián)系我,email:yymqqc@126.com