java程序设计教程第11章.ppt

上传人:wuy****n92 文档编号:80481994 上传时间:2023-03-23 格式:PPT 页数:96 大小:457KB
返回 下载 相关 举报
java程序设计教程第11章.ppt_第1页
第1页 / 共96页
java程序设计教程第11章.ppt_第2页
第2页 / 共96页
点击查看更多>>
资源描述

《java程序设计教程第11章.ppt》由会员分享,可在线阅读,更多相关《java程序设计教程第11章.ppt(96页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 1第11章 数据库编程第11章 数据库编程 11.1JDBC技术简介11.2JDBC的结构11.3JDBC驱动程序的类型11.4JDBC在数据库访问中的应用11.5JDBC综合应用示例本章小结习题2 2第11章 数据库编程11.1 JDBC技术简介JDBC(JavaDataBaseConnectivity)是Java语言为了支持SQL功能而提供的与数据库相连的用户接口。JDBC中包括了一组由Java语言编写的接口和类,都独立于特定的DBMS,或者说它们可以和各种数据相关联,即独立于数据库管理系统DBMS的应用提供了能与多个不同数据库连接的通用接口。这对于数据库程序来说,想要访问多种数据库,

2、只需要一个统一的接口就可以实现。3 3第11章 数据库编程在Java中JDBC提供了Java访问数据库平台统一的API。JDBC实际上就是由Java实现的数据库访问中间件。程序员可以通过JDBC向各种关系型数据库发送SQL语句,只需要使用JDBC提供的几个类(对象)或接口即可,而不必为不同的数据库编写不同的程序。有了JDBC以后,对于数据库编程,程序员只需要在Java语言中使用SQL语言,使Java应用程序或JavaApplet实现对分布在网络上的各种数据库的访问,而不用考虑底层具体DBMS的连接和访问过程。4 4第11章 数据库编程JDBC由一组Java语言编写的接口和类组成,使用内嵌式的S

3、QL,主要实现三大功能:(1)建立与数据库的连接;(2)执行SQL声明,向数据库发送SQL语句;(3)处理数据库返回的SQL执行结果。5 5第11章 数据库编程JDBC支持基本的SQL功能,使用它可以方便地与不同的关系数据库建立连接,进行相关操作,无须再为不同的DBMS分别编写程序。JDBC是一种底层API,意味着它将直接调用SQL命令,同时也是构造高层API和数据库开发工具的基础。高层API和数据库开发工具应该使用户界面更加友好,使用更加方便和易于理解。不过所有这样的API最终将被翻译为像JDBC这样的底层API。两种基于JDBC的高层API,一种是SQL语言嵌入Java的预处理器,另一种是

4、实现从关系数据库到Java类的直接映射,目前都正处于开发阶段。6 6第11章 数据库编程由于JDBC带来的便捷,越来越多的程序员已经开始利用JDBC为基础的工具进行开发,使开发工作更加容易。而程序员同时也正在开发让最终用户更加容易访问数据库的应用程序,Java程序通过JDBC访问数据库的关系如图11-1所示。7 7第11章 数据库编程图11-1Java程序通过JDBC访问数据库8 8第11章 数据库编程11.2 JDBC的结构11.2.1 JDBC APIJDBCAPI是面向程序员的,Java程序员通过调用此API可以实现连接数据库,执行SQL语句并返回结果集。JDBCAPI主要由一系列的接口

5、定义所构成,主要的接口如表11-1所示。9 9第11章 数据库编程1010第11章 数据库编程11.2.2 JDBC Driver API面向底层的JDBCDriverAPI主要是针对数据库厂商开发数据库底层驱动程序使用的,一般情况下用于开发应用程序的程序员用不到这些类库。Java的应用程序员通过SQL包中定义的一系列抽象类对数据库进行操作,而实现这些抽象类并完成实际操作,则是由数据库驱动器Driver运行的,最终保证Java程序员通过JDBC实现对不同数据库的操作。其结构如图11-2所示。1111第11章 数据库编程图11-2JDBCDriverAPI结构图1212第11章 数据库编程11.

6、3 JDBC驱动程序的类型目前比较常见的JDBC驱动程序可分为以下四种。1JDBC-ODBC和ODBC驱动程序这种驱动器通过ODBC驱动器提供数据库连接。JDBC在设计上和ODBC很类似,JDBC和数据库的连接方法之一是先建立起一个JDBC-ODBC桥接器。由于微软产品ODBC驱动程序已经被广泛应用,因此建立这种桥接器后,JDBC就有能力访问各种类型的数据库。使用这种驱动器,要求每一台客户机都要装入ODBC的驱动器。1313第11章 数据库编程2Native-API partly-Java Driver/本地API这种驱动方式将数据库厂商的特殊协议转化成Java代码以及二进制类码,使Java数

7、据库客户与数据库服务器通信。各客户机使用的数据库可能各不相同,需要在客户机上装有相应DBMS的驱动程序。1414第11章 数据库编程3JDBC网络纯Java驱动程序这种驱动程序将JDBC指令转化成独立于DBMS的网络协议形式,再由服务器转化为特定DBMS的协议形式。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。有关DBMS的协议由各数据库厂商决定。这种驱动器可以连接到不同的数据库上,是最为灵活的JDBC驱动程序。将来也许所有这种解决方案的提供者都能提供适合于Intranet用的产品。为了使这些产品也支持广域网存取,它们必须处理Web所提出的安全性、通过防火墙的访问等方

8、面的要求。目前一些厂商已经开始将JDBC驱动程序加到他们现有的数据库中间件产品中。1515第11章 数据库编程4本地协议纯Java驱动程序这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这相当于客户机直接与服务器联系,是Intranet访问的一个很实用的解决方法。以上四种驱动程序中,后两种都是纯Javadriver,相对效率更高,更具有通用性;但前两种比较容易获得,使用比较普遍一些。1616第11章 数据库编程11.4 JDBC在数据库访问中的应用JDBC与Acess、SQLServer、Oracle等各种数据库的连接,首先需要准备相应的运行环境,本例采用JDK1.5.0作

9、为开发工具,使用Eclipse3.2集成开发环境,可以提供一些演示功能。操作系统最好是Windows2000或者WindowsXP,并装好至少一种数据库。一个基本的JDBC程序开发编程步骤主要包含以下7步:1717第11章 数据库编程(1)引入相应的类和包(importjava.sql.*)。(2)加载合适的JDBC驱动程序(LoadtheDriver)。(3)连接数据库(ConnecttotheDataBase)。(4)执行SQL语句(ExecutetheSQL):Connection.CreateStatement();.executeQuery();.executeUpdate()。18

10、18第11章 数据库编程(5)从取得的ResultSet对象中获取结果(Retrievetheresultdata)。(6)将数据库中各种类型转换为Java中的类型,通过getXXX方法(Showtheresultdata)。(7)关闭(Close):closetheresultset对象;closethestatement对象;closetheconnection对象。下面按照JDBC编程步骤详细介绍JDBC在数据库访问中的应用。1919第11章 数据库编程11.4.1 建立与数据库的连接1设置数据源在数据库连接之前需要加载相应的数据源(采用JDBC-ODBC和ODBC驱动程序)。下面以SQ

11、LServer数据库为例简要说明如何设置数据源。一般是在控制面板的管理工具中打开ODBC项,出现ODBC数据源管理器对话框,然后选择UserDSN选项卡,单击Add按钮,选择想为其安装数据源的驱动程序,并点击完成,接着会出现创建到SQLServer的新数据源,如图11-3所示。按照此向导一步步往下操作,直到数据源配置成功,具体步骤将在11.5节里详细介绍。2020第11章 数据库编程图11-3设置数据源2121第11章 数据库编程2引入相应的类和包任何使用JDBC的源程序都需要输入java.sql包,即importjava.sql.*,必要的时候还需要装载相应的JDBC-ODBC驱动程序的包,

12、如importsun.jdbc.odbc.JdbcOdbcDriver。然后声明如下的对象:ResultSetrs=null;Connectionconn=null;Connection代表和数据库的连接,连接过程包括所执行的SQL语句和该连接上返回的结果2222第11章 数据库编程3装载驱动程序与数据库连接之前还需要装载驱动程序。一般常用的是Class.forName()方法显示装载驱动,如果采用JDBC-ODBC和ODBC驱动程序,用下列代码装载:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);Class是java.lang包中的一个类,该类通过

13、调用它的静态方法forName就可以建立JDBC-ODBC桥接器。执行该代码将装载驱动,并且在装载时,驱动将自动向JDBC注册自己。使用Class.forName()方法可能抛出异常,因此在驱动程序类有可能不存在时,需要捕获这个异常,标准是:2323第11章 数据库编程try/注册数据库Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/捕获异常catch(Java.lang.ClassNotFoundExceptione)System.err.println(e.getMessage();2424第11章 数据库编程4连接到数据库与数据库建立连接的标准方

14、法是调用DriverManager.getConnection,该方法接受含有某个url的字符串。DriverManager类是JDBC管理层,尝试找到可与指定url所代表的数据库进行连接的驱动程序如下:Stringurl=“jdbc:odbc:数据源名字”;Connectionconn=DriverManager.getConnection(url,数据源登录名,数据源登录密码);2525第11章 数据库编程第一条语句定义了一个字符串变量,变量内容是一种JDBC连接所特定的URL。JDBCURL的标准语法是:jdbc:子协议:子名称,其中JDBCURL中协议总是jdbc。如果采用JDBC-O

15、DBC桥驱动,JDBCURL以jdbc:odbc开始,余下URL通常是数据源名字或数据库系统。例如使用ODBC存取名为library的ODBC数据源,JDBCURL是jdbc:odbc:library。第二条语句通过调用getConnection方法创建与数据库的连接,并返回一个Connection对象。2626第11章 数据库编程11.4.2 执行查询语句与数据库建立连接成功后,就可以向所建立连接的数据库传送SQL语句,其中JDBC对能够被发送的SQL语句类型不加任何限制。在和数据库建立连接后,使用三种对象Statement、PreparedStatement和CallableStateme

16、nt查询数据库。在建立了SQL对象后,这个对象就可以调用相应的方法实现对数据库的查询和修改,并将查询结果存放在一个ResultSet类声明的对象中,也就是说,SQL语句对数据库的查询操作将返回一个ResultSet对象。2727第11章 数据库编程1StatementStatement对象实现对数据库的一般查询功能,在JDBC里面可采用Statement对象来实现发送SQL语句到数据库。Statement对象可把简单查询语句发送到数据库,允许执行简单的查询。2828第11章 数据库编程(1)创建对象。首先创建一个Statement对象,它封装代表要执行的SQL语句,并执行SQL语句以返回一个R

17、esultSet对象,通过Connection类中的createStatement()方法来实现。对象执行后得到正确的结果:Statementstmt=con.createStatement();2929第11章 数据库编程(2)执行SQL查询语句,查询数据库中的数据。Statement接口有三个查询方法:executeQuery()、executeUpdate()和execute()。executeQuery()方法执行简单的选择查询,例如SELECT语句。executeQuery的参数是String对象,返回的是一个ResultSet类的对象。executeUpdate()方法执行SQL的

18、UPDATE、INSERT或DELETE语句,返回整数值,并给出受查询影响的行数。3030第11章 数据库编程execute()方法中execute用于执行返回多个结果集、多个更新计数或二者组合的语句,一般不需要此功能,如:ResultSetrs=stmt.executeQuery(“Select*fromStudent_info”);stmt.executeUpdate(updateStudent_infosetage=20wherename=张杰);3131第11章 数据库编程2PreparedStatementPreparedStatement对象实现预编译方式执行SQL语句,由于Sta

19、tement对象在每次执行SQL语句时都将该语句传给数据库,如果需要多次执行同一条SQL语句,就将导致执行效率特别低,此时可以采用PreparedStatement对象来封装SQL语句。Prepared对象可以将SQL语句传给数据库作预编译,以提高执行速度。另外,PreparedStatement对象允许执行参数化的查询,可以用不同的输入参数来多次执行编译过的语句。3232第11章 数据库编程(1)创建PreparedStatement对象:PreparedStatmentpstmt=con.prepareStatement(“Select*from学生信息表”);(2)执行查询语句:Resu

20、ltSetrs=pstmt.exectueQuery();该条语句可以多次被执行3333第11章 数据库编程3CallableStatementCallableStatement对象主要用于执行数据库中的存储过程。存储过程是数据库已经存在的SQL查询语句,执行存储过程的结果同执行相应的SQL语句是一样的。3434第11章 数据库编程(1)创建CallableStatement对象,一般格式为“callprocedurename()”,是不带输入参数的存储过程,其中procedurename是存储过程的名称。带输入参数的存储过程为“callprocedurename(?,?)”。而带输入参数并有

21、返回结果参数的存储过程为“?=callprocedurename(?,?,.)”。例如:CallableStatementcstmt=con.prepareCall(callQuery1();3535第11章 数据库编程(2)执行存储过程。CallableStatement类是PreparedStatement类的子类,可以使用在PreparedStatement类及Statement类中的方法。因此执行存储过程可调用executeQuery()方法来实现,如:ResultSetrs=cstmt.executeQuery();3636第11章 数据库编程4ResultSet执行完毕SQL语句后

22、,将返回一个ResultSet类的对象,它包含所有的查询结果,也就是将查询结果封装在ResultSet对象中。ResultSet实际上是一张表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。3737第11章 数据库编程ResultSet类的对象方式依赖于光标(Cursor)的类型,对Resultset对象的处理必须逐步进行,而对每一行中的各个列可以按任何顺序进行处理。ResultSet对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next()方法将光标移动到下一行,因为该方法在ResultSet对象没有下一行时返回false,所以可以在while循环中使用它来迭代结果集

23、。ResultSet对象通过getXXX()方法来获得某一列的数据,这里XXX代表列的数据类型,如getInt()、getString()、getDate()等。其中getXXX(intcn)中cn指结果集中的列号,getXXX(StringcolName)中colName代表列名。3838第11章 数据库编程例如:Statementstmt=con.creatStatement();ResultSetrs=stmt.executeQuery(Select*from学生信息表);while(rs.next()Stringname=rs.getString(student_name);3939第

24、11章 数据库编程5查询数据库示例以下是通过JDBC连接SQLServer2000数据库进行数据库查询的示例。首先创建Statement对象,接着执行SQL语句,查询表dept_info中的信息,然后返回一个ResultSet类的对象,包含查询到dept_info表中deptno和deptname的数据。其中数据库library中dept_info表的数据如图11-4所示。4040第11章 数据库编程图11-4dept_info表4141第11章 数据库编程查询数据库中的数据首先要建立和数据库的连接。本例采用本地协议纯Java驱动程序,不需要数据源的设置。建立和数据库的连接步骤如下:(1)下载

25、SQLSever2000的驱动程序包,这个可以从微软的网站上下载(http:/ 数据库编程(2)设置环境变量。将三个.jar文件加入到环境变量中。此处安装驱动程序后将lib路径设为:D:SQLServer2000lib,环境变量设置如下:classpath:D:SQLServer2000libmssqlserver.jar;D:SQLServer2000libmsbase.jar;D:SQLServer2000libmsutil.jar;4343第11章 数据库编程(3)装载驱动程序并建立连接:Class.forName(“com.microsoft.jdbc.sqlserver.SQLSer

26、verDriver”);声明数据库驱动Stringdriver=“jdbc:microsoft:sqlserver:/localhost:1433”;Connectionconn=DriverManager.getConnection(driver,“”,“”);建立数据库连接查询数据库具体代码如下所述。4444第11章 数据库编程【示例11-1】TestJDBC.java。importjava.sql.*;publicclassTestJDBCpublicstaticvoidmain(Stringargs)ResultSetrs=null;Statementstmt=null;Connect

27、ionconn=null;tryClass.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);Stringdriver=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=library;4545第11章 数据库编程conn=DriverManager.getConnection(driver,“sa”,“123”);stmt=conn.createStatement();rs=stmt.executeQuery(“select*fromdept_info”);while(rs.n

28、ext()System.out.print(rs.getInt(“deptno”);System.out.println(rs.getString(“deptname”);catch(ClassNotFoundExceptione)e.printStackTrace();4646第11章 数据库编程catch(SQLExceptione)e.printStackTrace();finallytryif(rs!=null)rs.close();rs=null;if(stmt!=null)stmt.close();stmt=null;4747第11章 数据库编程if(conn!=null)conn

29、.close();conn=null;catch(SQLExceptione)e.printStackTrace();4848第11章 数据库编程程序运行结果:1光电工程学院2材料化工学院3电子工程学院4经济管理学院5计算机科学工程学院6人文社科学院4949第11章 数据库编程11.4.3 更新数据库操作和数据库建立连接后,除了要实现对数据库的查询操作外,在很多实际应用中,经常要实现对数据库的更新操作,主要包括对数据库表中的记录进行修改、插入和删除操作,以及数据库中表的创建和删除等操作,并通过Statement对象调用方法。以下是通过JDBC连接SQLServer2000数据库的更新操作。50

30、50第11章 数据库编程1对数据库进行修改、插入和删除操作通过SQL语句对数据库中表的记录进行修改、插入和删除操作,其中executeUpdate()方法的输入参数仍然为一个String对象(即所要执行的SQL语句),但输出参数不是ResultSet对象,而是一个整数(它代表操作所影响的记录行数)。5151第11章 数据库编程(1)修改操作。下列语句将学生信息表中张甜的年龄字段值修改为22:Statementstmt=conn.createStatement();Stringsql=“updateStudent_infosetage=22wherename=张甜”;stmt.executeUp

31、date(sql);5252第11章 数据库编程(2)插入操作。下列语句将给学生信息表中增加一条新记录王红,20,陕西:Statementstmt=conn.createStatement();Stringsql=“insertintoStudent_infovalues(王红,20,陕西)”;stmt.executeUpdate(sql);5353第11章 数据库编程(3)删除操作。下列语句删除了学生信息表中李明的记录:Statementstmt=conn.createStatement();Stringsql=“deletefromStudent_infowherename=李明”;stm

32、t.executeUpdate(sql);5454第11章 数据库编程2创建和删除表通过SQL的CreateTable和DropTable语句可实现对表的创建和删除。(1)创建表的语句如下:Statementstmt=con.createStatement();stmt.executeUpdate(“createtableTableName(IDINTEGER,NameVARCHAR(20)”);(2)删除表的语句如下:Statementstmt=con.createStatement();stmt.executeUpdate(DropTableName);5555第11章 数据库编程3增加和

33、删除表中的列对一个表的列进行更新操作主要是使用SQL的AlterTable语句,需要注意的是对列所进行的更新操作会影响到表中的所有行。(1)增加表中的一列。在TableName表中增加一列Address,数据类型为字符串。Statementstmt=con.createStatement();stmt.executeUpdate(AlterTableTableNameaddColumnAddressVarchar(50);5656第11章 数据库编程(2)删除表中的一列。在TableName表中删除一列Address。Statementstmt=con.createStatement();st

34、mt.executeUpdate(AlterTableTableNameDropColumnAddress);5757第11章 数据库编程11.4.4 事务通过Statement对象除了对数据库进行SQL的操作之外,事务控制也是一种主要的应用。事务控制在建立数据库驱动应用程序的时候是一个很重要的问题。在数据库中,事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。在JDBC的数据库操作中,一项事务是由一条或是多条表达式组成的一个不可分隔的工作单元。通过提交commit()或是回退rollback()来结束事务的操作,也就是当调用方法commit或rollback时,当前事务即结束,而另

35、一个事务随即开始。关于事务操作的方法都位于接口java.sql.Connection中。5858第11章 数据库编程在JDBC中,事务操作默认是自动提交的。一条对数据库的更新表达式代表一项事务操作,成功后,系统将自动调用commit()来提交;否则,将调用rollback()来回退。其中,方法commit使SQL语句对数据库所做的任何更改成为永久性的,它还将释放事务持有的全部锁。而方法rollback将弃去那些更改。有时用户在另一个更改生效前不想让此更改生效,这可通过调用setAutoCommit(false)禁用自动提交并将两个更新组合在一个事务中来达到。5959第11章 数据库编程如果两个

36、更新都是成功的,则调用commit()方法,从而使两个更新结果成为永久性的;如果其中之一或两个更新都失败了,就不会执行到commit(),并将产生一些异常,整个事务就要全部视为错误,这时则可以在捕获异常时调用rollback()进行回退,而全部从起始点后开始的操作应全部回到开始状态。大多数JDBC驱动程序都支持事务。事实上,符合JDBC的驱动程序必须支持事务。其中DatabaseMetaData给出的信息描述了DBMS所提供的事务支持水平。6060第11章 数据库编程11.5 JDBC综合应用示例本节以一个简单的图书借阅系统中对图书信息的操作为例,讲解JDBC在数据库连接中的应用,包括详细的数

37、据源设置以及实现对图书信息的增加、删除、修改和查询的操作。本例的数据库采用SQLServer2000,对数据库的访问采用便于理解的JDBC-ODBC方式。6161第11章 数据库编程11.5.1 建立数据库首先在SQLServer2000数据库中建立数据库library,并在数据库library中创建book_info表。也可以在与数据库library建立连接后通过SQL语句创建book_info表,如下:6262第11章 数据库编程Statementstmt=con.createStatement();Stringquery=“createtablebook_info”+“(BookIdVA

38、RCHAR(50),”+“BookNameVARCHAR(50),”+“Author,VARCHAR(50),”+“AmountINT(4)”;stmt.executeUpdate(query);其中数据库表book_info的数据库结构如表11-2所示。初始的book_info数据表如图11-5所示,表中已有两条图书信息。6363第11章 数据库编程6464第11章 数据库编程图11-5初始的book_info数据表6565第11章 数据库编程11.5.2 建立数据源为了同上一节中建立的数据库建立连接,需要配置一个ODBC数据源try,步骤如下。步骤一:在开始-设置-控制面版(Win98、N

39、T4.0)中选取“数据源(ODBC)”;在WindowsXP中“数据源(ODBC)”位于“开始-设置-控制面版-管理工具”或“开始-程序-管理工具”下。步骤二:启动“数据源(ODBC)”配置程序,界面如图11-6所示。6666第11章 数据库编程图11-6ODBC数据源管理界面6767第11章 数据库编程步骤三:在图11-6中“用户DSN”选项下单击“添加”按钮,添加一个系统的数据源(DSN),则出现如图11-7所示创建新数据源界面。步骤四:在图11-7中选择“SQLServer”,单击“完成”则出现如图11-8图11-10所示创建到SQLServer的新数据源的对话框,并按此向导填写内容。点

40、击“下一步”,选择使用网络登录ID的WindowsNT验证,接着点击“下一步”,并更改默认的数据库为library。6868第11章 数据库编程图11-7创建新数据源界面6969第11章 数据库编程图11-8创建到SQLServer的新数据源(一)7070第11章 数据库编程图11-9创建到SQLServer的新数据源(二)7171第11章 数据库编程图11-10创建到SQLServer的新数据源(三)7272第11章 数据库编程步骤五:再点击“下一步”,默认当前设置,点击“完成”,出现ODBCMicrosoft对话框,点击“测试数据源”,出现测试结果界面,如图11-11所示。以上步骤就完成了

41、对数据源的设置。7373第11章 数据库编程图11-11SQLServerODBC数据源测试界面7474第11章 数据库编程11.5.3 数据库操作程序本书采用JDK1.5.0作为开发工具,使用Eclipse3.2集成开发环境。首先在Eclipse中File菜单中新建一个Project工程,选择Java文件夹下的JavaProject选项,并点击下一步,出现如图11-12所示的对话框。新建jdbc工程名,最后点击完成。这样,jdbc,这个工程就建立好了。接着按照图11-13把SQLServer驱动程序添加到工程中,找到驱动程序存放的路径就可以完成这个操作。7575第11章 数据库编程图11-1

42、2创建JavaProject7676第11章 数据库编程图11-13添加驱动程序7777第11章 数据库编程其次就是代码的编写,右键点击工程名jdbc,新建一个dbconnect类。【示例11-2】dbconnect.java。importjava.sql.*;publicclassdbconnectpublicstaticvoidmain(Stringargs)StringdbDriver=sun.jdbc.odbc.JdbcOdbcDriver;/声明数据库驱动Stringdriver=jdbc:odbc:library;/声明数据源Connectioncon=null;Stringque

43、ry=select*frombook_info;7878第11章 数据库编程ResultSetrs=null;Statementstmt=null;try/加载SQLServer的jdbc驱动Class.forName(dbDriver);catch(java.lang.ClassNotFoundExceptione)System.err.println(ClassNotFoundException:+e.getMessage();try7979第11章 数据库编程/建立数据库连接con=DriverManager.getConnection(driver,sa,123);/将数据库连接设置为

44、自动提交模式con.setAutoCommit(true);stmt=con.createStatement();/执行insertinto语句,增加两条图书信息stmt.executeUpdate(insertintobook_info(BookId,BookName)values200803,英语口语技能);stmt.executeUpdate(insertintobook_info(BookId,BookName)values(200804,JSP入门);8080第11章 数据库编程queryBooks(con,stmt,query);/执行一个update语句,更新数据库,修改2008

45、03图书编号的书名stmt.executeUpdate(updatebook_infosetBookName=基础英语口语技能whereBookId=003);queryBooks(con,stmt,query);/执行一个delete语句,删除一条图书信息stmt.executeUpdate(deletefrombook_infowhereBookId=200804);queryBooks(con,stmt,query);8181第11章 数据库编程stmt.close();con.close();/上面的语句关闭声明和连接catch(SQLExceptionex)System.err.pr

46、intln(SQLException:+ex.getMessage();8282第11章 数据库编程privatestaticvoidqueryBooks(Connectioncon,Statementstmt,Stringquery)try/返回一个结果集ResultSetrs=stmt.executeQuery(query);/下面的语句使用了一个while循环,打印出了book_info表中的所有数据System.out.println(book_info表中的数据如下);System.out.println(图书编号+书名);while(rs.next()8383第11章 数据库编程/

47、取得数据库中的数据Strings=rs.getString(“BookId”);Stringf=rs.getString(“BookName”);System.out.println(s+“”+f);rs.close();catch(SQLExceptionex)System.err.println(SQLException:+ex.getMessage();8484第11章 数据库编程代码编写完成后,点击Run菜单栏,在Console中显示结果,如图11-14所示。在图书借阅系统中,dbconnect.java程序通过JDBC实现了对图书信息进行增加、修改、删除的操作,同时SQLServer

48、数据库library中的book_info表的数据同步改变,如图11-15图11-17所示。8585第11章 数据库编程图11-14Eclipse操作界面8686第11章 数据库编程图11-15数据库Library中book_info表(一)8787第11章 数据库编程图11-16数据库Library中book_info表(二)8888第11章 数据库编程图11-17数据库library中book_info表(三)8989第11章 数据库编程本 章 小 结JDBC是将Java与SQL结合且独立于特定的数据库系统的应用程序编程接口。有了JDBC,Java程序员可以用Java语言来编写完整的数据库

49、方面的应用程序,另外也可以操作保存在多种不同的数据库管理系统中的数据,而与数据库管理系统中数据存储的格式无关。9090第11章 数据库编程本章简单介绍了Java与数据库连接的JDBC技术。首先对JDBC的功能和结构进行了概述,其次介绍了四种类型的JDBC驱动程序以及按照JDBC编程步骤实现JDBC在数据库访问中的应用,最后通过一个具体实例讲解了JDBC在数据库连接中的实际应用。9191第11章 数据库编程习 题1.简述JDBC驱动程序的四种类型。2.有哪些方法可以发送访问、操作数据库的SQL语句?如何处理对数据库访问操作的结果?如何获得关于数据库的信息?3.编写一个数据库程序,实现对学生成绩的查询、修改、删除功能。4.建立一个Book.mdb数据库,该数据库包含4个表:Authors、Publishers、AuthorISBN和Title,各表描述如表11-3表11-6所示。9292第11章 数据库编程9393第11章 数据库编程9494第11章 数据库编程9595第11章 数据库编程9696第11章 数据库编程(1)编写程序建立数据库,并录入相关数据。(2)编写程序将Title表的全部数据输出。(3)编写程序,查询姓张的作者出版的所有书籍的详细信息。(4)编写程序,在表AuthorISBN中插入2条新记录。(5)编写程序,删除1997年出版的所有书籍。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁