JDBC數(shù)據(jù)庫編程_第1頁
JDBC數(shù)據(jù)庫編程_第2頁
JDBC數(shù)據(jù)庫編程_第3頁
JDBC數(shù)據(jù)庫編程_第4頁
JDBC數(shù)據(jù)庫編程_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、JDBC數(shù)據(jù)庫編程1、JDBC簡介在現(xiàn)在的所有開發(fā)之中都是基于數(shù)據(jù)庫的開發(fā)應(yīng)用,那么如果要進(jìn)行數(shù)據(jù)庫的開發(fā),則必須存在相應(yīng)的操作服務(wù)支持,而JDBC就是一種服務(wù):JDBC(Java數(shù)據(jù)庫連接),是一套操作標(biāo)準(zhǔn)。JDBC的核心組成就是接口,不同的數(shù)據(jù)庫生產(chǎn)商要根據(jù)自己的數(shù)據(jù)庫按照指定的接口標(biāo)準(zhǔn)實(shí)現(xiàn)數(shù)據(jù)庫的連接以及操作。而JDBC按照分類主要分為以下三種操作形式: JDBC-ODBC:使用JDBC技術(shù)連接ODBC,通過ODBC進(jìn)行數(shù)據(jù)庫的操作;|- 操作流程:程序 JDBC ODBC 數(shù)據(jù)庫;中間要經(jīng)過一個ODBC,沒人這么做;|- 好處:所有的技術(shù)都是最新的,并且由Java默認(rèn)提供驅(qū)動程序; J

2、DBC:不同的數(shù)據(jù)庫生產(chǎn)商根據(jù)指定的標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)庫驅(qū)動的開發(fā), 并且使用;|- 操作流程:程序 JDBC 數(shù)據(jù)庫;需要單獨(dú)配置驅(qū)動程序; JDBC網(wǎng)絡(luò)連接:根據(jù)網(wǎng)絡(luò)協(xié)議進(jìn)行服務(wù)器的連接操作,開發(fā)之中都使用此方式;進(jìn)行數(shù)據(jù)庫開發(fā)的系統(tǒng)包是java.sql包,在這個包之中主要是一個類四個接口:DriverManager類、Connection、Statement、PreparedStatement、ResultSet。2、連接數(shù)據(jù)庫本次使用的是Oracle數(shù)據(jù)庫進(jìn)行開發(fā),而如果要使用oracle,則必須保證兩個服務(wù)打開:監(jiān)聽、實(shí)例服務(wù)。但是如果要進(jìn)行Oracle的數(shù)據(jù)庫連接還需要得到Oracle的

3、驅(qū)動,那么這一驅(qū)動程序在Oracle安裝之后會自動提供。路徑:D:oracleproduct10.1.0db_1jdbclibclasses12.jar,此時可以在CLASSPATH之中進(jìn)行此路徑的注冊,但是這個CLASSPATH在Eclipse之中沒有用處,所以還需要在Eclipse里面配置jar包。而如果要想取得數(shù)據(jù)庫連接,還需要以下四個信息才可以完成: 數(shù)據(jù)庫驅(qū)動程序:oracle.jdbc.driver.OracleDriver; 數(shù)據(jù)庫連接地址:現(xiàn)在操作的數(shù)據(jù)庫是MLDN,連接端口是:1521|- 連接地址:jdbc:oracle:thin:localhost:1521:MLDN;

4、數(shù)據(jù)庫的用戶名:scott; 數(shù)據(jù)庫的密碼:tiger;以上的這一信息一定要記下來,不同的數(shù)據(jù)庫連接只在此處不同,但是至少得寫一個出來。準(zhǔn)備完成了所有的信息之后,下面就可以按照如下的步驟進(jìn)行數(shù)據(jù)庫的操作: 加載數(shù)據(jù)庫驅(qū)動程序; 通過DriverManager類取得連接;|- 方法:public static Connection getConnection(String url, String user, String password) throws SQLException 進(jìn)行數(shù)據(jù)表的CRUD操作; 關(guān)閉數(shù)據(jù)庫;資源操作必須關(guān)閉每一個DriverManager取得的連接都通過Connec

5、tion接口表示,所以在整個的JDBC,每次通過DriverManager取得的每一個Connection都表示一個新的數(shù)據(jù)庫連接。范例:連接數(shù)據(jù)庫package cn.mldn.test;import java.sql.Connection;import java.sql.DriverManager;public class TestDemo public static final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public static final String DBURL = jdbc:oracle:thin:loca

6、lhost:1521:MLDN;public static final String DBUSER = scott;public static final String PASSWORD = tiger;public static void main(String args) throws Exception / 省事Connection conn = null; / 表示一個數(shù)據(jù)庫連接對象Class.forName(DBDRIVER); / 加載數(shù)據(jù)庫驅(qū)動程序/ CTRL + SHIFT + X,格式化代碼:CTRL + Fconn = DriverManager.getConnection

7、(DBURL, DBUSER, PASSWORD);System.out.println(conn); / 輸出連接對象conn.close();解決方法:1、輸入regedit.exe,進(jìn)入到注冊表;2、找到項(xiàng):HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesOracleOraDb10g_home2TNSListener;3、觀察ImagePath,表示的是可執(zhí)行程序的路徑;D:oracleproduct10.1.0db_1BINTNSLSNR3、數(shù)據(jù)庫的操作(重點(diǎn))當(dāng)取得了數(shù)據(jù)庫的連接對象之后,那么下面就可以通過Connection接口對象取得St

8、atement接口對象。 方法:public Statement createStatement() throws SQLException;用戶可以使用Statement接口中的方法進(jìn)行數(shù)據(jù)庫的查詢及更新處理操作; 更新操作:public int executeUpdate(String sql) throws SQLException;返回更新的行數(shù) 查詢操作:public ResultSet executeQuery(String sql) throws SQLException;在執(zhí)行操作之前首先建立一張新的數(shù)據(jù)表,數(shù)據(jù)庫創(chuàng)建腳本如下:DROP TABLE member PURGE ;

9、DROP SEQUENCE myseq ;CREATE SEQUENCE myseq ;CREATE TABLE member (midNUMBERPRIMARY KEY ,nameVARCHAR2(200)NOT NULL ,ageNUMBER ,birthdayDATE ,noteCLOB) ;其中mid的內(nèi)容由序列控制增長,序列的增長使用nextval偽列。3.1、進(jìn)行數(shù)據(jù)的更新操作數(shù)據(jù)的更新操作主要是分為三種:1、增加操作:INSERT INTO 表名稱 (字段,) VALUES (值,)在編寫增加操作的時候數(shù)據(jù)要注意: VARCHAR2、CLOB:使用“”聲明; NUMBER:直接編

10、寫數(shù)字; DATE:SYSDATE、TO_DATE()、按照指定的字符串規(guī)格編寫。package cn.mldn.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class TestDemo public static final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public static final String DBURL = jdbc:oracle:thin:localhost:1

11、521:MLDN;public static final String DBUSER = scott;public static final String PASSWORD = tiger;public static void main(String args) throws Exception / 省事Connection conn = null; / 表示一個數(shù)據(jù)庫連接對象Statement stmt = null; / 表示數(shù)據(jù)庫操作對象Class.forName(DBDRIVER); / 加載數(shù)據(jù)庫驅(qū)動程序conn = DriverManager.getConnection(DBURL

12、, DBUSER, PASSWORD);stmt = conn.createStatement(); / 創(chuàng)建數(shù)據(jù)庫操作String sql = INSERT INTO member(mid,name,age,birthday,note) + VALUES (myseq.nextval,張三,20, + TO_DATE(1891-09-12,yyyy-mm-dd),歲數(shù)很長的一個老人) ;int len = stmt.executeUpdate(sql); / 執(zhí)行更新System.out.println(更新行數(shù): + len);stmt.close() ;conn.close();2、刪除

13、操作:DELETE FROM 表名稱 WHERE 刪除條件(s)如果不寫刪除條件表示全部刪除。package cn.mldn.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class TestDemo public static final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public static final String DBURL = jdbc:oracle:thin:local

14、host:1521:MLDN;public static final String DBUSER = scott;public static final String PASSWORD = tiger;public static void main(String args) throws Exception / 省事Connection conn = null; / 表示一個數(shù)據(jù)庫連接對象Statement stmt = null; / 表示數(shù)據(jù)庫操作對象Class.forName(DBDRIVER); / 加載數(shù)據(jù)庫驅(qū)動程序conn = DriverManager.getConnection

15、(DBURL, DBUSER, PASSWORD);stmt = conn.createStatement(); / 創(chuàng)建數(shù)據(jù)庫操作String sql = DELETE FROM member WHERE mid IN (4,14) ;int len = stmt.executeUpdate(sql); / 執(zhí)行更新System.out.println(更新行數(shù): + len);stmt.close() ;conn.close();3、修改操作:UPDATE 表名稱 SET 字段=值, WHERE 修改條件(s)package cn.mldn.test;import java.sql.Con

16、nection;import java.sql.DriverManager;import java.sql.Statement;public class TestDemo public static final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public static final String DBURL = jdbc:oracle:thin:localhost:1521:MLDN;public static final String DBUSER = scott;public static final String PAS

17、SWORD = tiger;public static void main(String args) throws Exception / 省事Connection conn = null; / 表示一個數(shù)據(jù)庫連接對象Statement stmt = null; / 表示數(shù)據(jù)庫操作對象Class.forName(DBDRIVER); / 加載數(shù)據(jù)庫驅(qū)動程序conn = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);stmt = conn.createStatement(); / 創(chuàng)建數(shù)據(jù)庫操作String sql = UPDATE m

18、ember SET name=李四 WHERE mid IN (1,3,5,7,9,10) ;int len = stmt.executeUpdate(sql); / 執(zhí)行更新System.out.println(更新行數(shù): + len);stmt.close() ;conn.close();所有的操作發(fā)現(xiàn)只是在更改了SQL語句,其他的地方?jīng)]有任何的改變,這個就是JDBC操作的固定之處。3.2、數(shù)據(jù)庫的查詢操作如果現(xiàn)在在sqlplusw之中進(jìn)行查詢,那么屏幕上返回的是所有滿足這一查詢的查詢結(jié)果,但是現(xiàn)在執(zhí)行查詢的不再是前臺界面,而是程序,所以就必須把這一查詢結(jié)果交給程序去處理,那么就必須設(shè)計(jì)一

19、種類型,這種類型可以保存任意多的查詢結(jié)果,那么這就是ResultSet作用。范例:查詢member表package cn.mldn.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.util.Date;public class TestDemo public static final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public

20、 static final String DBURL = jdbc:oracle:thin:localhost:1521:MLDN;public static final String DBUSER = scott;public static final String PASSWORD = tiger;public static void main(String args) throws Exception / 省事Connection conn = null; / 表示一個數(shù)據(jù)庫連接對象Statement stmt = null; / 表示數(shù)據(jù)庫操作對象Class.forName(DBDRI

21、VER); / 加載數(shù)據(jù)庫驅(qū)動程序conn = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);stmt = conn.createStatement(); / 創(chuàng)建數(shù)據(jù)庫操作String sql = SELECT mid,name,age,birthday,note FROM member ;ResultSet rs = stmt.executeQuery(sql); / 查詢數(shù)據(jù)庫while (rs.next() / 指針向下移動int mid = rs.getInt(mid) ;String name = rs.getString

22、(name) ;int age = rs.getInt(age) ;Date birthday = rs.getDate(birthday) ;String note = rs.getString(note) ;System.out.println(mid + , + name + , + age + , + birthday+ , + note);rs.close() ;stmt.close();conn.close();/ 一個連接可以打開多個操作,如果連接一關(guān)閉,所有的都關(guān)閉但是需要注意的是,在使用ResultSet取數(shù)據(jù)的時候,也可以使用序號的形式完成。while (rs.next()

23、 / 指針向下移動int mid = rs.getInt(1) ;String name = rs.getString(2) ;int age = rs.getInt(3) ;Date birthday = rs.getDate(4) ;String note = rs.getString(5) ;System.out.println(mid + , + name + , + age + , + birthday+ , + note);以上的代碼在Oracle 10g之前都可以使用,但是到了Oracle 11g,對于CLOB字段的取值有了些改變,不能再像之前那樣直接利用getString()取

24、了,只能利用IO流讀取。while (rs.next() / 指針向下移動int mid = rs.getInt(1) ;String name = rs.getString(2) ;int age = rs.getInt(3) ;Date birthday = rs.getDate(4) ;Reader input = rs.getClob(5).getCharacterStream() ;/ 大字段BufferedReader buf = new BufferedReader(input) ;StringBuffer note = new StringBuffer() ;String st

25、r = null ;while(str = buf.readLine() != null) note.append(str) ;System.out.println(mid + , + name + , + age + , + birthday+ , + note);像以后的MySQL等數(shù)據(jù)庫都不會存在此類問題。4、預(yù)處理:PreparedStatement(核心)如果說現(xiàn)在有這樣一個要求:增加一個新的數(shù)據(jù),但是這個人的姓名叫“MrSmith”,而且現(xiàn)在不單單是修改SQL語句,而是希望這里面的數(shù)據(jù)由用戶自己輸入。package cn.mldn.test;import java.sql.Conn

26、ection;import java.sql.DriverManager;import java.sql.Statement;public class TestDemo public static final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public static final String DBURL = jdbc:oracle:thin:localhost:1521:MLDN;public static final String DBUSER = scott;public static final String PASS

27、WORD = tiger;public static void main(String args) throws Exception / 省事String name = MrSmith ;int age = 30 ;String date = 1998-09-01 ;/ 字符串String note = 可算是個正常人。 ;Connection conn = null; / 表示一個數(shù)據(jù)庫連接對象Statement stmt = null; / 表示數(shù)據(jù)庫操作對象Class.forName(DBDRIVER); / 加載數(shù)據(jù)庫驅(qū)動程序conn = DriverManager.getConnec

28、tion(DBURL, DBUSER, PASSWORD);stmt = conn.createStatement(); / 創(chuàng)建數(shù)據(jù)庫操作String sql = INSERT INTO member(mid,name,age,birthday,note) + VALUES (myseq.nextval, + name + , + age + , + TO_DATE( + date + ,yyyy-mm-dd), + note + ) ; / 別費(fèi)勁System.out.println(sql);int len = stmt.executeUpdate(sql); / 執(zhí)行更新System.

29、out.println(更新行數(shù): + len);stmt.close() ;conn.close();本程序執(zhí)行時出現(xiàn)了以下的錯誤信息:INSERT INTO member(mid,name,age,birthday,note) VALUES (myseq.nextval,MrSmith,30, TO_DATE(1998-09-01,yyyy-mm-dd),可算是個正常人。) Exception in thread main java.sql.SQLException: ORA-00917: missing comma在日后的JDBC開發(fā)之中,如果出現(xiàn)了SQLException查SQL語句。

30、因?yàn)樵赟QL語句之中“”是作為字符串的聲明使用的,所以如果出現(xiàn)一個單獨(dú)的“”會破壞這一規(guī)定,那么自然就出錯了。因?yàn)榇藭r所使用的方式是拼湊的SQL語句,它需要將多個字符串內(nèi)容連接在一起,所以使用起來很不方便,則就可以得出一個結(jié)論 既然拼湊的SQL不好使用,那么在開發(fā)之中是絕對不會使用Statement接口開發(fā)。都去使用Statement的子接口 PreparedStatement完成。PreparedStatement是一種預(yù)處理的SQL執(zhí)行方式,其執(zhí)行的性能要比Statement更高。在進(jìn)行預(yù)處理操作的時候所有的內(nèi)容實(shí)際上并不知道,那么都要使用“?”進(jìn)行占位,回到之前的增加程序。但是如果要想取

31、得PreparedStatement接口對象則需要使用Connection接口的另外一個方法完成:public PreparedStatement prepareStatement(String sql) throws SQLException而取得了PreparedStatement接口對象之后那么執(zhí)行數(shù)據(jù)庫操作的方法也要更新: 更新操作:public int executeUpdate() throws SQLException; 查詢操作:public ResultSet executeQuery() throws SQLException;范例:使用PreparedStatement進(jìn)

32、行數(shù)據(jù)的更新操作package cn.mldn.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.util.Date;public class TestDemo public static final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public static final String DBURL = jdbc:oracle:thin:localhost:1521

33、:MLDN;public static final String DBUSER = scott;public static final String PASSWORD = tiger;public static void main(String args) throws Exception / 省事String name = MrSmith;int age = 30;Date date = new Date(); / 表示日期String note = 可算是個正常人。;Connection conn = null; / 表示一個數(shù)據(jù)庫連接對象PreparedStatement pstmt =

34、 null; / 表示數(shù)據(jù)庫操作對象Class.forName(DBDRIVER); / 加載數(shù)據(jù)庫驅(qū)動程序conn = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);String sql = INSERT INTO member(mid,name,age,birthday,note) + VALUES (myseq.nextval,?,?,?,?) ;pstmt = conn.prepareStatement(sql);pstmt.setString(1, name);pstmt.setInt(2, age);pstmt.setDa

35、te(3, new java.sql.Date(date.getTime();pstmt.setString(4, note);System.out.println(sql);int len = pstmt.executeUpdate(); / 執(zhí)行更新System.out.println(更新行數(shù): + len);pstmt.close();conn.close();以上完成了增加數(shù)據(jù)的操作,實(shí)際上對于修改和刪除操作也一樣了,下面完成數(shù)據(jù)的查詢操作,通過幾個范例說明,這幾個范例直接和日后的開發(fā)有著最緊密的聯(lián)系。范例:查詢member表中的全部記錄package cn.mldn.test;im

36、port java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Date;public class TestDemo public static final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public static final String DBURL = jdbc:oracle:thin:localhost:1521:MLDN

37、;public static final String DBUSER = scott;public static final String PASSWORD = tiger;public static void main(String args) throws Exception / 省事Connection conn = null; / 表示一個數(shù)據(jù)庫連接對象PreparedStatement pstmt = null; / 表示數(shù)據(jù)庫操作對象Class.forName(DBDRIVER); / 加載數(shù)據(jù)庫驅(qū)動程序conn = DriverManager.getConnection(DBUR

38、L, DBUSER, PASSWORD);String sql = SELECT mid,name,age,birthday,note FROM member ;pstmt = conn.prepareStatement(sql);ResultSet rs = pstmt.executeQuery() ;while (rs.next() int mid = rs.getInt(1) ;String name = rs.getString(2) ;int age = rs.getInt(3) ;Date birthday = rs.getDate(4) ;String note = rs.get

39、String(5) ;System.out.println(mid + , + name + , + age + , + birthday+ , + note);pstmt.close();conn.close();范例:使用模糊查詢package cn.mldn.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Date;public class TestDemo p

40、ublic static final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public static final String DBURL = jdbc:oracle:thin:localhost:1521:MLDN;public static final String DBUSER = scott;public static final String PASSWORD = tiger;public static void main(String args) throws Exception / 省事String keyWord

41、= 張 ;Connection conn = null; / 表示一個數(shù)據(jù)庫連接對象PreparedStatement pstmt = null; / 表示數(shù)據(jù)庫操作對象Class.forName(DBDRIVER); / 加載數(shù)據(jù)庫驅(qū)動程序conn = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);String sql = SELECT mid,name,age,birthday,note + FROM member + WHERE name LIKE ?;pstmt = conn.prepareStatement(sql);pst

42、mt.setString(1, % + keyWord + %);ResultSet rs = pstmt.executeQuery() ;while (rs.next() int mid = rs.getInt(1) ;String name = rs.getString(2) ;int age = rs.getInt(3) ;Date birthday = rs.getDate(4) ;String note = rs.getString(5) ;System.out.println(mid + , + name + , + age + , + birthday+ , + note);ps

43、tmt.close();conn.close();如果此時的keyWord為空字符串呢?表示查詢?nèi)繑?shù)據(jù)。范例:分頁顯示數(shù)據(jù)currentPage = 1,lineSize = 5,當(dāng)前在第1頁,每頁顯示5條記錄。package cn.mldn.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.Date;public class TestDemo public stat

44、ic final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public static final String DBURL = jdbc:oracle:thin:localhost:1521:MLDN;public static final String DBUSER = scott;public static final String PASSWORD = tiger;public static void main(String args) throws Exception / 省事String keyWord = ;int cur

45、rentPage = 2 ;int lineSize = 5 ;Connection conn = null; / 表示一個數(shù)據(jù)庫連接對象PreparedStatement pstmt = null; / 表示數(shù)據(jù)庫操作對象Class.forName(DBDRIVER); / 加載數(shù)據(jù)庫驅(qū)動程序conn = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);String sql = SELECT * FROM + (SELECT mid,name,age,birthday,note,ROWNUM rn + FROM member + WH

46、ERE name LIKE ? AND ROWNUM? ;pstmt = conn.prepareStatement(sql);pstmt.setString(1, % + keyWord + %);pstmt.setInt(2, currentPage * lineSize);pstmt.setInt(3, (currentPage - 1) * lineSize);ResultSet rs = pstmt.executeQuery() ;while (rs.next() int mid = rs.getInt(1) ;String name = rs.getString(2) ;int a

47、ge = rs.getInt(3) ;Date birthday = rs.getDate(4) ;String note = rs.getString(5) ;System.out.println(mid + , + name + , + age + , + birthday+ , + note);pstmt.close();conn.close();范例:查詢member表中的數(shù)據(jù)量 COUNT()函數(shù)package cn.mldn.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.P

48、reparedStatement;import java.sql.ResultSet;public class TestDemo public static final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public static final String DBURL = jdbc:oracle:thin:localhost:1521:MLDN;public static final String DBUSER = scott;public static final String PASSWORD = tiger;public

49、static void main(String args) throws Exception / 省事String keyWord = ;Connection conn = null; / 表示一個數(shù)據(jù)庫連接對象PreparedStatement pstmt = null; / 表示數(shù)據(jù)庫操作對象Class.forName(DBDRIVER); / 加載數(shù)據(jù)庫驅(qū)動程序conn = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);String sql = SELECT COUNT(mid) + FROM member + WHERE na

50、me LIKE ? ;pstmt = conn.prepareStatement(sql);pstmt.setString(1, % + keyWord + %);ResultSet rs = pstmt.executeQuery();if (rs.next() / 一定滿足int count = rs.getInt(1); / 取第一列System.out.println(count);pstmt.close();conn.close();以上的幾個程序?yàn)榻裉熳钪匾某绦?,晚上把這些程序都可以不看參考的寫出來。5、批處理及事務(wù)處理在之前所有的操作實(shí)際上都屬于JDBC 1.0的范疇,當(dāng)然與最早

51、的JDBC 1.0相比已經(jīng)有很多的改善,而現(xiàn)在最新的JDBC版本是4.0,但是根本沒人使(都使Hibernate),而在JDBC 2.0之后實(shí)際上增加了許多的新功能(基本上都是無用功能):可滾動的結(jié)果集、使用結(jié)果集更新數(shù)據(jù)、批處理。在這之中唯一可以使用的就是批處理的操作,所謂的批處理就是指一次性向數(shù)據(jù)表之中執(zhí)行多條SQL語句。而要想使用批處理,則對應(yīng)的操作方法也應(yīng)該更改: Statement操作更改:|- 增加批處理:public void addBatch(String sql) throws SQLException;|- 執(zhí)行批處理:public int executeBatch() t

52、hrows SQLException; PreparedStatement操作更改:|- 增加批處理:public void addBatch() throws SQLException;范例:通過Statement演示一下批處理package cn.mldn.test;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class TestDemo public static final String DBDRIVER = oracle.jdbc.driver.OracleDriver;public static final String DBURL = jdbc:oracle:thin:localhost:1521:MLDN;public static final String DBUSER = scott;public static final String PASSWORD = tiger;public static void main(String args) throws Exception / 省事Connection conn = null; /

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論