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

下載本文檔

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

文檔簡介

1、第4章Java數(shù)據(jù)庫編程建立學(xué)生管理數(shù)據(jù)庫/* 學(xué)生管理數(shù)據(jù)庫 */CREATE DATABASE xsgl ON( NAME = xsgl_Data,FILENAME = c: start新xsgl.mdf ,SIZE = 2,FILEGROWTH = 10 %) LOG ON( NAME = xsgl_Log, FILENAME = c: start新xsgl_log.ldf,SIZE = 2,FILEGROWTH = 10%) use xsgl GO /*創(chuàng)建專業(yè)表 */ CREATE TABLE speciality(specialityID int IDENTITY(l,1) PRI

2、MARY KEY, specialityname char(10)NOT NULL) GO / *創(chuàng)建用戶表* / CREATE TABLE usertable (uid int IDENTITY (1, 1) PRIMARY KEY, uname char (10) NOT NULL, upwd char(10) NULL) GO /*創(chuàng)建班級(jí)分類表*/ CREATE TABLE classclass(id int IDENTITY(1,1) PRIMARY KEY, parent int NOT NULL, name nchar(10) NOT NULL UNIQUE) GO /*創(chuàng)建課程

3、表 */ CREATE TABLE course (courseID int IDENTITY (1,1) PRIMARY KEY, courseName nchar(20) NOT NULL UNIQUE, teacher nchar( 10 ) NULL) GO / * 創(chuàng)建學(xué)生檔案表* / CREATE TABLE xsda(no int IDENTITY(1,1)PRIMARY KEY, classID int REFERENCES classclass (ID), name char (10) NOT NULL, sex nchar (1) NOT NULL, birthDate c

4、har (10) NULL, speciality int NULL, address char(30) NULL, isMember char (1) NULL, resume ntext NULL, picture image NULL) GO / *創(chuàng)建學(xué)生成績表*/ CREATE TABLE grade (no int REFERENCES xsda (no), courseId int REFERENCES course (courseID), grade float NOT NULL, PRIMARY KEY(no, courseID) ) GO1 數(shù)據(jù)庫的連接 數(shù)據(jù)庫的連接一般使

5、用兩種方法:使用JDBC-ODBC橋?qū)崿F(xiàn)數(shù)據(jù)庫的連接和使用純Java JDBC驅(qū)動(dòng)程序?qū)崿F(xiàn)數(shù)據(jù)的連接。1. JDBC JDBC(Java DataBase Connection,Java數(shù)據(jù)庫連接)由一組用Java語言編寫的類和接口組成。JDBC為使用數(shù)據(jù)庫 及其工具的開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,使他們能夠用Java API來編寫數(shù)據(jù)庫應(yīng)用程序。通過使用JDBC,開發(fā)人員 可以很方便地將SQL語句傳送給幾乎任何一種數(shù)據(jù)庫。 JDBC的作用概括起來有如下3個(gè)方面: (1)建立與數(shù)據(jù)庫的連接 (2)向數(shù)據(jù)庫發(fā)起查詢請求 (3)處理數(shù)據(jù)庫返回結(jié)果 這些作用是通過一系列API實(shí)現(xiàn)的,其中的幾個(gè)重要

6、類或接口如表4-1所示。 表 與數(shù)據(jù)庫有關(guān)的幾個(gè)重要類或接口接口作用處理驅(qū)動(dòng)程序的加載和建立新數(shù)據(jù)庫連接處理與特定數(shù)據(jù)庫的連接在指定連接中處理SQL語句處理數(shù)據(jù)庫操作結(jié)果集2DrverManager DriverManager類是Java.sql包中用于數(shù)據(jù)庫驅(qū)動(dòng)程序管理的類,作用于用戶和驅(qū)動(dòng)程序之間。它跟蹤可用的驅(qū)動(dòng)程序,并在數(shù)據(jù)庫和相應(yīng)的驅(qū)動(dòng)程序之間建立連接,也處理諸如驅(qū)動(dòng)程序登錄時(shí)間限制及登錄和跟蹤消息的顯示等事務(wù)。一般的應(yīng)用程序只使用它的getConnection()方法。這個(gè)方法用來建立與數(shù)據(jù)庫的連接。 static Connection getConnection(String u

7、rl, String username, String password):通過指定的數(shù)據(jù)的URL及用戶 名、密碼創(chuàng)建數(shù)據(jù)庫連接。 3Connection Connection是用來表示數(shù)據(jù)庫連接的對象,對數(shù)據(jù)庫的一切操作都是在這個(gè)連接基礎(chǔ)上進(jìn)行的。Connection類的主 要方法有: void clearWarning( ):清除連接的所有警告信息。 Statement createStatement( ):創(chuàng)建一個(gè)Statement對象。Statement CreateStatement(int resultSetType, int resultSetConcurrency):創(chuàng)建一個(gè)S

8、tatement對象,它將生成具有特定類型和并發(fā)性的結(jié)果集。 void commit( ):提交對數(shù)據(jù)庫的改動(dòng)并釋放當(dāng)前持有的數(shù)據(jù)庫的鎖。void rollback( ):回滾當(dāng)前事務(wù)中的所有改動(dòng)并釋放當(dāng)前連接持有的數(shù)據(jù)庫的鎖。String getCatalog( ):獲取連接對象的當(dāng)前目錄。 boolean isClose( ):判斷連接是否已關(guān)閉。 boolean isReadOnly():判斷連接是否為只讀模式。 void setReadOnly():設(shè)置連接的只讀模式。 void close():立即釋放連接對象的數(shù)據(jù)庫和JDBC資源。 4. Statement Java所有SQL語句

9、都是通過陳述(Statement)對象實(shí)現(xiàn)的。Statement用于在已經(jīng)建立的連接的基礎(chǔ)上向數(shù)據(jù)庫發(fā)送SQL語句的對象。 Statement對象的建立 通過Connection對象的createStatement方法建立Statement對象:Statement stmt=con.createStatement(); 如果要建立可滾動(dòng)的記錄集,需要使用如下格式的方法: public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException resultSetType可取

10、下列常量:ResultSet.TYPE_FORWARD_ONL:只能向前,默認(rèn)值。 ResultSet.TYPE_SCROLL_INSENSITIVE:可操作數(shù)據(jù)集的游標(biāo),但不反映數(shù)據(jù)的變化。ResultSet.TYPE_SCROLL_SENSITIVE:可操作數(shù)據(jù)集的游標(biāo),反映數(shù)據(jù)的變化。 resultSetConcurrency的取值: ResultSet.CONCUR_READ_ONLY:不可進(jìn)行更新操作。 ResultSet.CONCUR_UPDATABLE:可以進(jìn)行更新操作,默認(rèn)值。 Statement對象的方法 Statement對象提供了三種執(zhí)行SQL語句的方法: ResultS

11、et executeQuery(String sql):執(zhí)行SELECT語句,返回一個(gè)結(jié)果集。int executeUpdate(String sql):執(zhí)行update、insert、delete 等不需要返回結(jié)果集的SQL語句。它返回一個(gè)整數(shù),表示執(zhí)行SQL語句影響的數(shù)據(jù)行數(shù)。boolean execute(String sql):用于執(zhí)行多個(gè)結(jié)果集、多個(gè)更新結(jié)果(或者兩者都有)的SQL語句。它返回一個(gè)boolean值。如果第一個(gè)結(jié)果是ResultSet對象,返回true;如果是整數(shù),就返回false。取結(jié)果集時(shí)可以與getMoreResultSet、getResultSet和getUpd

12、ateCount結(jié)合來對結(jié)果進(jìn)行處理。 5ResultSet ResultSet對象實(shí)際上是一個(gè)由查詢結(jié)果數(shù)據(jù)構(gòu)成的表。在ResultSet中隱含著一個(gè)指針,利用這個(gè)指針移動(dòng)數(shù)據(jù)行,可以取得所要的數(shù)據(jù),或?qū)?shù)據(jù)進(jìn)行簡單的操作。其主要的方法有:boolean absolute(int row):將指針移動(dòng)到結(jié)果集對象的某一行。 void afterLast():將指針移動(dòng)到結(jié)果集對象的末尾。 void beforeFrist():將指針移動(dòng)到結(jié)果集對象的頭部。 boolean first():將指針移動(dòng)到結(jié)果集對象的第一行。 boolean next():將指針移動(dòng)到當(dāng)前行的下一行。 boole

13、an previous():將指針移動(dòng)到當(dāng)前行的前一行。 boolean last():將指針移動(dòng)到當(dāng)前行的最后一行。 此外還可以使用一組getXXX()方法,讀取指定列的數(shù)據(jù)。XXX是JDBC中Java語言的數(shù)據(jù)類型。這些方法的參數(shù)有兩種格式,一是用int指定列的索引,二是用列的字段名(可能是別名)來指定列。如: String strName=rs.getString(2); String strName=rs.getString(name);案例 使用純Java JDBC驅(qū)動(dòng)程序?qū)崿F(xiàn)數(shù)據(jù)庫的連接在相關(guān)網(wǎng)站下載驅(qū)動(dòng)程序,通過Class.forName()方法加載驅(qū)動(dòng)程序,再通過驅(qū)動(dòng)程序管理器

14、(DriverManager)的方法getConnection()建立連接?!敬a與注釋】import java.sql.*;import javax.swing.*;class ConnectServer2/連接數(shù)據(jù)類static Connection con=null;/連接對象public static boolean conn(String url,String username,String password)tryClass.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);catch(Exception e)e.print

15、StackTrace();return false;trycon=DriverManager.getConnection(url,username,password);/連接數(shù)據(jù)庫catch(SQLException e)e.printStackTrace();return false;return true;/成功public static boolean close()trycon.close();/關(guān)閉數(shù)據(jù)庫con=null;catch(SQLException e)return false;return true;public static void main(String args)

16、/連接SQL Server數(shù)據(jù)庫if(conn(jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=xs gl,sa,)JOptionPane.showMessageDialog(null,數(shù)據(jù)庫連接成功!);close();/關(guān)閉數(shù)據(jù)庫else JOptionPane.showMessageDialog(null,數(shù)據(jù)庫連接失敗!);學(xué)習(xí)利用純Java JDBC驅(qū)動(dòng)程序?qū)崿F(xiàn)數(shù)據(jù)庫連接?!緫?yīng)用擴(kuò)展】連接其他類型的數(shù)據(jù)庫使用的驅(qū)動(dòng)程序,可參考表4-2。表4-2 常用的數(shù)據(jù)庫驅(qū)動(dòng)程序數(shù)據(jù)庫驅(qū)動(dòng)類URL下載地址MySQLjdbc:mysql:/

17、localhost:3306/xsglOracleriver.OracleDriverjdbc:oracle:thin:127.0.0.1:1521:xsgl 【相關(guān)知識(shí)】1. 純Java JDBC驅(qū)動(dòng)程序 純Java JDBC驅(qū)動(dòng)程序是獨(dú)立的連接驅(qū)動(dòng)程序,不需要中間服務(wù)器,與數(shù)據(jù)庫實(shí)現(xiàn)通信的整個(gè)過程均由Java語言 實(shí)現(xiàn)。這種方法目前應(yīng)用較廣泛,缺點(diǎn)是需要下載相應(yīng)的類包,不同數(shù)據(jù)庫的連接代碼可能不同。連接SQL Server可 以在網(wǎng)站下載。有三個(gè)類包:msbase.jar、mssqlserver.jar、msutil.jar。使用時(shí)要將這三個(gè)包放在 jdkjrelibext目錄下,或者所放

18、的位置設(shè)置到CLASSPATH中即可。 2使用純Java JDBC驅(qū)動(dòng)程序連接數(shù)據(jù)庫 (1)加載驅(qū)動(dòng)程序 在JDBC中,通常有兩種加載驅(qū)動(dòng)程序的方式。 一種是將驅(qū)動(dòng)程序添加到j(luò)ava.lang.System的屬性jdc.drivers中。這是一個(gè)由DriverManager類加載驅(qū)動(dòng)程序類名的列表,用冒號(hào)分隔。在JDBC的java.sql.DrvierManager類初始化時(shí),JVM的系統(tǒng)屬性中搜索jdbc.drivers字段的內(nèi)容。如果存在以冒號(hào)分隔的驅(qū)動(dòng)程序名稱,則 DriverManager類加載相應(yīng)的驅(qū)動(dòng)程序。 另一種方式是在程序中利用Class.forName()方法加載指定的驅(qū)動(dòng)程

19、序,如: Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); 需要注意的是,連接不同的數(shù)據(jù)庫,加載的驅(qū)動(dòng)程序有所不同。 (2)創(chuàng)建指定數(shù)據(jù)庫的URL 要建立與數(shù)據(jù)庫的連接,首先要?jiǎng)?chuàng)建指定數(shù)據(jù)庫的URL。數(shù)據(jù)庫的URL對象類似網(wǎng)絡(luò)資源的統(tǒng)一定位。其構(gòu)成格 式如下:jdbc:subProtocol:subName:/hostname:port;DatabaseName=XXX 其中:jdbc表示當(dāng)前通過Java的數(shù)據(jù)庫連接進(jìn)行數(shù)據(jù)庫訪問。 subProtocal表示通過某種驅(qū)動(dòng)程序支持的數(shù)據(jù)庫連接機(jī)制。 subName表示在當(dāng)前

20、連接機(jī)制下的具體名稱。hostName表示主機(jī)名。port表示相應(yīng)的連接端口。 DatabaseName是要連接的數(shù)據(jù)庫的名稱。 按照上述構(gòu)造規(guī)則,可以構(gòu)造如下類型的數(shù)據(jù)庫URL: jdbc.microsoft:sqlserver:/localhost:1433;DatabaseName=xsgl 該數(shù)據(jù)庫URL表示利用Microsoft提供的機(jī)制,選擇名稱為sqlserver的驅(qū)動(dòng),通過1433端口訪問本機(jī)上的xsgl數(shù)據(jù)庫。 數(shù)據(jù)的基本操作數(shù)據(jù)的基本操作主要是指對數(shù)據(jù)的查看、添加、修改、刪除、查詢等操作,利用Java的Statement對象所提供的成員方法,可以方便地實(shí)現(xiàn)這些操作。案例 3

21、 讀取數(shù)據(jù)利用Connection對象的createStatement方法建立Statement對象,在利用Statement對象的executeQuery()的方法執(zhí)行SQL語句進(jìn)行查詢,返回結(jié)果集。再利用形如getXXX()的方法從結(jié)果集中讀取數(shù)據(jù)。 【案例說明】利用上面定義的ConnectServer類建立連接,讀取學(xué)生檔案(xsda)表中的數(shù)據(jù),顯示在如圖4-1所示的窗體中,并且能夠前后移動(dòng)記錄。學(xué)習(xí)數(shù)據(jù)庫的基本操作方法。為了方便,案例中的組件采用的都是文本組件。在實(shí)際應(yīng)用中,也經(jīng)常使用其他組件。例如,性別用單選鈕。如果改成單選鈕,男和女兩個(gè)單選鈕要建立成組,并根據(jù)數(shù)據(jù)庫中讀出的數(shù)據(jù),

22、設(shè)置其選中狀態(tài)。讀者可參考下一案例。import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.sql.*;public class StudentDataWindow extends JFrame implements ActionListenerString title=班級(jí):,學(xué)號(hào):,姓名:,性別:,出生日期:,團(tuán)員否:,家庭地址:,簡歷:;JTextField txtClassID=new JTextField(2);JTextField txtNo=new

23、JTextField(2);JTextField txtName=new JTextField(10);JTextField txtSex=new JTextField(3);JTextField txtBirthDate=new JTextField(10);JTextField txtIsMember=new JTextField(2);JTextField txtAddress=new JTextField(30);JTextArea txtResume=new JTextArea();JButton next=new JButton(下一頁);JButton prev=new JBut

24、ton(上一頁);JButton first=new JButton(首頁);JButton last=new JButton(尾頁);Statement stmt;ResultSet rs;StudentDataWindow()super(學(xué)生檔案信息查看窗口);setSize(450,395);trystmt=ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);/創(chuàng)建Statment對象,指定記錄集可滾動(dòng),但只讀rs=stmt.executeQuery(

25、select * from xsda); /執(zhí)行查詢,返回結(jié)果集Container con=getContentPane();con.setLayout(new BorderLayout(0,8);JPanel p=new JPanel7;for(int i=0;i7;i+)pi=new JPanel(new FlowLayout(FlowLayout.LEFT,10,0);pi.add(new JLabel(titlei);p0.add(txtClassID);p1.add(txtNo);p2.add(txtName);p3.add(txtSex);p4.add(txtBirthDate);

26、p5.add(txtIsMember);p6.add(txtAddress);JPanel p1=new JPanel(new GridLayout(7,1,0,8);JScrollPane jp=new JScrollPane(txtResume, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);jp.setPreferredSize(new Dimension(380,80);for(int i=0;i7;i+) p1.add(pi);JPanel p2=new JPanel(ne

27、w FlowLayout(FlowLayout.LEFT,10,0);p2.add(new JLabel(title7);p2.add(jp);JPanel p3=new JPanel();p3.add(prev);p3.add(next);p3.add(first);p3.add(last);con.add(p1,North);con.add(p2,Center);con.add(p3,South);next.addActionListener(this);prev.addActionListener(this);first.addActionListener(this);last.addA

28、ctionListener(this);rs.first();loadData();catch(Exception e)e.printStackTrace();setVisible(true);boolean loadData() /讀結(jié)果集中數(shù)據(jù),并設(shè)置到相應(yīng)的組件trytxtNo.setText(rs.getString(no);txtClassID.setText(rs.getString(classID);txtName.setText(rs.getString(name);txtSex.setText(rs.getString(sex);txtBirthDate.setText(rs

29、.getString(birthDate);txtAddress.setText(rs.getString(address);txtIsMember.setText(rs.getString(isMember);txtResume.setText(rs.getString(resume);catch(SQLException e)e.printStackTrace();return false; return true;public void actionPerformed(ActionEvent e)tryif(e.getSource()=next)rs.next(); /下一記錄else

30、if(e.getSource()=prev)rs.previous(); /前一記錄else if(e.getSource()=first)rs.first(); /首記錄else if(e.getSource()=last)rs.last(); /尾記錄loadData(); /重新讀取數(shù)據(jù)catch(Exception ee)public static void main(String args)JFrame.setDefaultLookAndFeelDecorated(true);Font font = new Font(JFrame, Font.PLAIN, 14);Enumerati

31、on keys = UIManager.getLookAndFeelDefaults().keys();while (keys.hasMoreElements()Object key = keys.nextElement();if(UIManager.get(key)instanceof Font) UIManager.put(key, font);if(!ConnectServer.conn(jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=xsgl,sa,)JOptionPane.showMessageDialog(null,數(shù)據(jù)庫

32、連接不成功!);System.exit(0);StudentDataWindow mainFrame = new StudentDataWindow();【應(yīng)用擴(kuò)展】為了方便,案例中的組件采用的都是文本組件。在實(shí)際應(yīng)用中,也經(jīng)常使用其他組件。例如,性別用單選鈕。如果改成單選鈕,男和女兩個(gè)單選鈕要建立成組,并根據(jù)數(shù)據(jù)庫中讀出的數(shù)據(jù),設(shè)置其選中狀態(tài)。讀者可參考下一案例。案例4 數(shù)據(jù)更新【案例說明】數(shù)據(jù)的更新包括表的創(chuàng)建、刪除及記錄的增、刪、改操作。本案例實(shí)現(xiàn)了對數(shù)據(jù)的更新操作,界面上的組件更加豐富。運(yùn)行界面如圖 所示。【技術(shù)要點(diǎn)】利用Connection對象的createStatement方法建立

33、Statement對象,再利用Statement對象的executeUpdate()的方法執(zhí)行update語句,實(shí)現(xiàn)數(shù)據(jù)修改;執(zhí)行insert語句,實(shí)現(xiàn)數(shù)據(jù)添加。import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.sql.*;class StudentDataUpdate extends JFrame implements ActionListenerString title=班級(jí),學(xué)號(hào),姓名,性別,出生日期,團(tuán)員否,家庭地址,簡歷;JComboBox com

34、bClassID=new JComboBox();JTextField txtNo=new JTextField(2);JTextField txtName=new JTextField(10);JTextField txtBirthDate=new JTextField(10);JTextField txtAddress=new JTextField(30);JTextArea txtResume=new JTextArea();JRadioButton radioSexM=new JRadioButton(男,true);JRadioButton radioSexF=new JRadioB

35、utton(女,false);JCheckBox checkIsMember=new JCheckBox(,false);JButton ok=new JButton(保存);JButton cancel=new JButton(取消);Statement stmt;ResultSet rs;int No;StudentDataUpdate(int No)this.No=No;if(No=-1)setTitle(添加學(xué)生檔案窗口);else setTitle(修改學(xué)生檔案窗口);tryContainer con=getContentPane();con.setLayout(new Border

36、Layout(0,5); /設(shè)置邊界布局stmt=ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); /建立可滾動(dòng)并且可更新的結(jié)果集rs=stmt.executeQuery(select name from classclass order by ID asc);while(rs.next()/將班級(jí)信息添入到下拉列表中combClassID.addItem(rs.getString(1);ButtonGroup bgp=new ButtonGroup();

37、 /為單選鈕分組bgp.add(radioSexM);bgp.add(radioSexF); setSize(450,410); JPanel p=new JPanel7; for(int i=0;i7;i+)pi=new JPanel(new FlowLayout(FlowLayout.LEFT,10,0); pi.add(new JLabel(titlei); p0.add(combClassID); p1.add(txtNo); p2.add(txtName); p3.add(radioSexM);p3.add(radioSexF); p4.add(txtBirthDate); p5.a

38、dd(checkIsMember); p6.add(txtAddress); JPanel p1=new JPanel(new GridLayout(7,1,0,5); for(int i=0;i0)System.out.println(成功刪除記錄);【應(yīng)用擴(kuò)展】案例中對數(shù)據(jù)的操作均使用SQL完成。在構(gòu)造SQL語句時(shí)十分麻煩,實(shí)際上對數(shù)據(jù)的更新還有其他方法。例如,使用預(yù)處理(PreparedStatement)對象不僅可以提高操作的速度,而且書寫也會(huì)簡單。在后面的內(nèi)容中將介紹幾種更新數(shù)據(jù)的方法?!鞠嚓P(guān)知識(shí)】1數(shù)據(jù)表記錄增加操作(1)數(shù)據(jù)表記錄增加的SQL語法insert into 表名(字段

39、名1,字段名2) values(字段值1,字段值2,) 例如: insert into xsda(classID,name,sex,birthDate,isMember,address,resume) values(12,張磊,男, 1988-9-8,1, 北京, ) (2)使用Statement對象增加數(shù)據(jù)表記錄 首先創(chuàng)建一個(gè)SQL語句。然后調(diào)用Statement對象的executeUpdate()方法。 stmt.executeUpdate(sql); 上述方法可以返回一個(gè)整數(shù),表明成功插入的記錄數(shù)。(3)使用moveToInsertRow 和insertRow方法增加數(shù)據(jù)表記錄 Stri

40、ng sql=select * from xsda; ResultSet rs=stmt.executeQuery(sql); /獲取數(shù)據(jù)表的全部結(jié)果集 rs.moveToInsertRow(); /將數(shù)據(jù)表指針移到插入記錄位置 rs.updateInt(2, 13); /向classID字段輸入數(shù)據(jù)rs.updateString(3, 黃紅); /向name字段輸入數(shù)據(jù) rs.updateString(4, 女); /向sex字段輸入數(shù)據(jù)rs.updateString(5, 1997-9-12); /向birthDate字段輸入數(shù)據(jù) rs.updateString(6, 大連); /向address字段輸入數(shù)據(jù) rs.updateInt(7, 1); /向isMember字段輸入數(shù)據(jù)rs.updateString(8, 無); /向resume字段輸入數(shù)據(jù) try rs.insertRow(); catch(Exception e) (4)使用PrepareStatement對象增加數(shù)據(jù)表記錄 與使用Statement類似,只是創(chuàng)建SQL語

溫馨提示

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

最新文檔

評論

0/150

提交評論