版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年文學(xué)常識綜合練習(xí)題及答案詳解
- 2026年文化研究文化交流文化活動知識題
- 2026年農(nóng)產(chǎn)品種植與食品安全規(guī)范測試題
- 綠色施工管理體系與管理制度三
- 2026年信息安全工程師認(rèn)證考試解析
- 2026年國際貿(mào)易法規(guī)實(shí)務(wù)國際商務(wù)考試模擬題
- 2026年公務(wù)員申論寫作與練習(xí)題
- 2026年績效考核6S管理績效評估與激勵機(jī)制題庫
- 2026年網(wǎng)絡(luò)營銷策略與實(shí)踐考題
- 2026年教育心理學(xué)學(xué)生心理輔導(dǎo)教育策略與方法題庫
- 2026年普洱市墨江縣中醫(yī)醫(yī)院招聘編外人員(11人)筆試備考試題及答案解析
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會成熟人才招聘備考題庫附答案詳解
- 碼頭安全專題培訓(xùn)內(nèi)容
- GB/T 46559-2025二氧化碳地質(zhì)封存場地評價指標(biāo)體系
- DB11∕T 2490-2025 文物保護(hù)單位無障礙設(shè)施設(shè)置規(guī)范
- 2026年數(shù)據(jù)服務(wù)企業(yè)數(shù)據(jù)交易合規(guī)培訓(xùn)課件與數(shù)據(jù)變現(xiàn)風(fēng)控
- 填飼對鵝肝膽固醇合成相關(guān)基因表達(dá)的影響:基于分子機(jī)制與生理響應(yīng)的研究
- 2025年關(guān)于落實(shí)全面從嚴(yán)治黨主體責(zé)任情況的自查報告
- 開發(fā)票運(yùn)輸合同范本
- 臨床正確標(biāo)本采集規(guī)范
- 基金通道業(yè)務(wù)合同協(xié)議
評論
0/150
提交評論