您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 2016033003_Statement数据操作接口
第(1)页共(6)页1、课程名称:Statement数据操作接口2、知识点2.1、上次课程的主要知识点数据库连接操作。2.2、本次预计讲解的知识点利用Statement接口实现数据的CRUD操作。3、具体内容(★★★★★)在java.sql包中的Connection接口只是负责数据库的连接使用,它不具备数据的操作能力,而具备数据操作能力的接口只有Statement接口。如果要想取得Statement接口的对象可以通过Connection接口的如下方法完成:·实例化Statement对象:publicStatementcreateStatement()throwsSQLException;但问题是,如果使用Statement大部分情况下操作的都是DML,所以在Statement接口中就提供有如下两种方法:·数据更新操作:publicintexecuteUpdate(Stringsql)throwsSQLException;|-在执行更新操作中返回的int数据是该更新影响的数据行数;第(2)页共(6)页·数据查询操作:publicResultSetexecuteQuery(Stringsql)throwsSQLException;范例:数据库脚本DROPTABLEmemberPURGE;DROPSEQUENCEmyseq;CREATESEQUENCEmyseq;CREATETABLEmember(midNUMBER,nameVARCHAR2(50),ageNUMBER(3),birthdayDATE,noteCLOB,CONSTRAINTpk_midPRIMARYKEY(mid));在member表中mid字段的内容是依靠序列进行增长的。3.1、数据更新操作数据更新操作分为:INSERT、UPDATE、DELETE三种操作形式。范例:增加数据INSERTINTOmember(mid,name,age,birthday,note)VALUES(myseq.nextval,'张三',10,TO_DATE('1989-10-10','yyyy-mm-dd'),'是个人');commit;packagecn.mldn.demo;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;publicclassTestDemo{publicstaticfinalStringDBDRIVER=oracle.jdbc.driver.OracleDriver;publicstaticfinalStringDBURL=jdbc:oracle:thin:@localhost:1521:mldn;publicstaticfinalStringDBUSER=scott;publicstaticfinalStringPASSWORD=tiger;publicstaticvoidmain(Stringargs[])throwsException{//第一步:加载数据库驱动程序Class.forName(DBDRIVER);//向容器中加载驱动连接类//第二步:取得数据库连接对象Connectionconn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);//第三步:进行数据库的数据操作Statementstmt=conn.createStatement();//创建数据库的操作Stringsql=INSERTINTOmember(mid,name,age,birthday,note)+VALUES(myseq.nextval,'张三',+10,TO_DATE('1989-10-10','yyyy-mm-dd'),'是个人');intlen=stmt.executeUpdate(sql);//执行更新,返回更新行数System.out.println(影响的数据行数:+len);//第四步:关闭数据库连接conn.close();第(3)页共(6)页}}范例:实现数据的更新操作UPDATEmemberSETname='李四',birthday=SYSDATEWHEREmidIN(11,33,55,7,9);packagecn.mldn.demo;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;publicclassTestDemo{publicstaticfinalStringDBDRIVER=oracle.jdbc.driver.OracleDriver;publicstaticfinalStringDBURL=jdbc:oracle:thin:@localhost:1521:mldn;publicstaticfinalStringDBUSER=scott;publicstaticfinalStringPASSWORD=tiger;publicstaticvoidmain(Stringargs[])throwsException{//第一步:加载数据库驱动程序Class.forName(DBDRIVER);//向容器中加载驱动连接类//第二步:取得数据库连接对象Connectionconn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);//第三步:进行数据库的数据操作Statementstmt=conn.createStatement();//创建数据库的操作Stringsql=UPDATEmemberSETname='李四',birthday=SYSDATEWHEREmidIN(11,33,55,7,9);intlen=stmt.executeUpdate(sql);//执行更新,返回更新行数System.out.println(影响的数据行数:+len);//第四步:关闭数据库连接conn.close();}}需要提醒记住的是,在JDBC操作过程之中往往会出现两种异常:·java.sql.SQLException:表示的是数据库连接出错;·java.sql.SQLSyntaxErrorException:表示的是执行SQL语句有错误。范例:实现数据的删除操作DELETEFROMmemberWHEREmidBETWEEN11AND20;packagecn.mldn.demo;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;publicclassTestDemo{publicstaticfinalStringDBDRIVER=oracle.jdbc.driver.OracleDriver;publicstaticfinalStringDBURL=jdbc:oracle:thin:@localhost:1521:mldn;publicstaticfinalStringDBUSER=scott;publicstaticfinalStringPASSWORD=tiger;publicstaticvoidmain(Stringargs[])throwsException{//第一步:加载数据库驱动程序Class.forName(DBDRIVER);//向容器中加载驱动连接类第(4)页共(6)页//第二步:取得数据库连接对象Connectionconn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);//第三步:进行数据库的数据操作Statementstmt=conn.createStatement();//创建数据库的操作Stringsql=DELETEFROMmemberWHEREmidBETWEEN11AND20;intlen=stmt.executeUpdate(sql);//执行更新,返回更新行数System.out.println(影响的数据行数:+len);//第四步:关闭数据库连接conn.close();}}对于整个的数据更新操作,方法都是完全一样的,使用的都是Statement接口中固定的executeUpdate()方法。3.2、数据查询操作在进行数据查询操作的过程之中,最为麻烦的问题是需要将所有的查询结果进行保留,而程序操作的只是这些查询结果,为了保存这样的查询结果在java.sql包中引入了ResultSet接口的概念。在ResultSet处理结果的时候实际上是根据数据类型来进行处理的。范例:查询全部packagecn.mldn.demo;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.Statement;publicclassTestDemo{publicstaticfinalStringDBDRIVER=oracle.jdbc.driver.OracleDriver;publicstaticfinalStringDBURL=jdbc:oracle:thin:@localhost:1521:mldn;第(5)页共(6)页publicstaticfinalStringDBUSER=scott;publicstaticfinalStringPASSWORD=tiger;publicstaticvoidmain(Stringargs[])throwsException{//第一步:加载数据库驱动程序Class.forName(DBDRIVER);//向容器中加载驱动连接类//第二步:取得数据库连接对象Connectionconn=DriverManager.getConnection(DBURL,DBUSER,PASSWORD);//第三步:进行数据库的数据操作Statementstmt=conn.createStatement();//创建数据库的操作//以后开发代码不允许写“*”,工作中这种代码是要扣钱的Stringsql=SELECTmid,name,age,birthday,noteFROMmember;ResultSetrs=stmt.executeQuery(sql);//数据查询操作//知道循环结束条件,但是不知道循环次数,选择while循环while(rs.next()){//移动指针同时判断是否还有数据行intmid=rs.getInt(mid);Stringname=rs.getString(name);intage=rs.getInt(age);java.util.Datebirthday=rs.getDate(birthday);Stringnote=rs.getString(note);System.out.println(mid=+mid+,name=+name+,age=+age+,birthday=+birthday+,note=+note);}//第四步:关闭数据库连接rs.close();//只要关闭连接了,这就关闭了,这个代码装13用的,没用stmt.close();//只要关闭连接了,这就关闭了,这个代码装13用的,没用conn.close();//连接一关闭都释放}}以上的代码已经都明确的写出了要查询的列名称,所以在使用getXxx()方法读取的数据就可以不写列名称,直接编写序号就行了。while(rs.next()){//移动指针同时判断是否还有数据行intmid=rs.getInt(1);Stringname=rs.getString(2);intage=rs.getInt(3);java.util.Datebirthday=rs.getDate(4);String
本文标题:2016033003_Statement数据操作接口
链接地址:https://www.777doc.com/doc-2962983 .html