JDBC簡介 今天,研究了下JDBC連接SQL Server2008的過程,為了日后學(xué)習(xí)的方便,就把自己的心得寫出來,供自己日后參考,如果這篇文章對您有所幫助,那就更好了。 首先,大家需要知道的是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個包的支持外,還需要導(dǎo)入相應(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,然后導(dǎo)入如下命名空間: 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
|
|