JDBC编程技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第9章JDBC编程技术第9章JDBC编程技术9.1JDBC概述9.2使用JDBC开发数据库应用实训九数据库应用程序开发习题九第9章JDBC编程技术9.1JDBC概述9.1.1JDBC的概念数据库是收集、存储和组织数据常用的方法,大部分应用系统不可避免地需要访问数据库。由于数据库产品纷繁复杂,在一个公司甚至一个部门经常会出现多种数据库系统并存的情况。Java语言通过JDBC(JavaDataBaseConnection,Java数据库连接)API提供了一个标准SQL(StructuredQueryLanguage,结构化查询语言)数据库访问接口。第9章JDBC编程技术由于目前几乎所有的关系数据库产品都支持SQL语言,开发人员能够用相同的方法将SQL语句发送到不同的数据库系统,访问各种数据库系统。第9章JDBC编程技术JDBC出现前,JavaApplet访问数据库只能通过Web服务器端的CGI程序进行(见图9.1),由CGI程序访问和操作数据库并得到结果,然后由Web服务器将结果返回到客户端。每一次访问Web服务器都会启动一个新的CGI进程与数据库建立连接,访问效率和速度都很低,且容易引入错误。而使用JDBC允许Java程序直接与数据库连接(见图9.2),将SQL命令发送给数据库服务器,大大提高了访问速度。第9章JDBC编程技术图9.1Applet通过CGI访问数据库Web服务器JavaAppletCGI程序数据库第9章JDBC编程技术图9.2Applet通过JDBC访问数据库JavaAppletJDBCAPIJDBC驱动程序管理器JDBC驱动程序数据库JDBC第9章JDBC编程技术使用JDBC的Applet只能与它所在的Web服务器主机上的数据库服务器建立连接,这是Applet访问数据库的安全性限制。JDBC与数据库系统独立的API包含两部分,一部分是面向应用系统开发人员的JDBCAPI,另一部分是面向驱动程序开发人员的JDBCDriverAPI。Java程序通过JDBCAPI访问JDBC驱动程序管理器(DriverManager),驱动程序管理器再通过JDBCDriverAPI访问不同的JDBC驱动程序,从而实现对不同类型数据库的访问。第9章JDBC编程技术JDBC提供了一个通用的JDBCDriverManager,用来管理各数据库软件商提供的JDBC驱动程序,从而访问其数据库。现在越来越多的数据库厂商都开始提供其数据库产品的JDBC驱动程序,包括微软公司的SQLServer2000。不过微软提供的驱动程序在JavaApplet中使用时需要客户端修改策略文件,改变JavaApplet缺省的安全性限制,因此,用它来开发在Internet上发布的应用系统并不好。第9章JDBC编程技术9.1.2JDBCURLJDBCURL是JDBC用来标识数据库的方法,JDBC驱动程序管理器根据JDBCURL选择正确的驱动程序,由驱动程序识别该数据库并与之建立连接。实际上,驱动程序设计人员决定用什么JDBCURL来标识特定的驱动程序。用户无需关心如何来形成JDBCURL,只需使用与驱动程序一起提供的URL即可。JDBC提供某些约定,驱动程序设计人员构造JDBCURL时应该遵循这些约定。第9章JDBC编程技术由于JDBCURL要与各种不同类型的数据库驱动程序一起使用,因此这些约定应非常灵活。首先,它们应允许不同的驱动程序使用不同的方案来命名数据库。例如,odbc子协议允许URL含有属性值。其次,JDBCURL应允许程序员将连接数据库所需的全部信息编入其中。这样就可以让Java程序直接打开数据库连接,而不需要最终用户去做任何系统管理工作。第9章JDBC编程技术第三,JDBCURL应允许某种程度的间接性。也就是说,JDBCURL可指向逻辑主机或数据库名,而这种逻辑主机或数据库名将由网络命名系统动态地转换为实际的名称。这可以使系统管理员不必将特定主机声明为JDBC名称的一部分。网络命名服务(例如DNS、NIS)有多种,而对于使用哪种命名服务并无限制。JDBCURL的标准语法由三部分组成,各部分间用冒号分隔:jdbc:子协议:子名称第9章JDBC编程技术三个部分可分解如下:jdbc:协议名。JDBCURL中的协议总是jdbc。子协议:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称。例如,odbc用于指定ODBC数据源名称的URL的使用。下面的JDBCURL通过ODBC驱动程序来访问某个数据库:jdbc:odbc:fred这里,子协议为odbc,子名称fred是本地ODBC数据源名。第9章JDBC编程技术子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,使用子名称的目的是为定位数据库提供足够的信息。子名称的格式可根据不同的子协议而变化。在上面的例子中,ODBC子协议只需数据源名就可以了,而对于远程服务器上的数据库往往需要更多的信息。例如,通过Internet访问SQLServer数据库服务器,则在JDBCURL中应将网络地址作为子名称的一部分包括进去。如:jdbc:microsoft:sqlserver://localhost:1433;User=sa;Password=;DatabaseName=DemoDB第9章JDBC编程技术9.1.3JDBC-ODBC桥ODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WindowsOpenServicesArchitecture,WOSA)中有关数据库的一个组成部分。与JDBC类似,它建立了一组规范,并提供了一组对数据库访问的标准API,利用SQL来完成其大部分任务。第9章JDBC编程技术ODBC标准出现较早,目前几乎所有的数据库系统都提供ODBC驱动程序。Sun公司对没有提供相应JDBC驱动程序的数据库系统,开发了特殊的驱动程序:JDBC-ODBC桥,该驱动程序支持JDBC通过现有的ODBC驱动程序访问相应的数据库系统。JDBC-ODBC桥子协议名为odbc,允许在子名称(数据源名称)后面指定任意多个属性值。odbc子协议的完整语法为jdbc:odbc:数据资源名称[;属性名=属性值]*第9章JDBC编程技术这里,*表示可有多个属性。下面都是合法的jdbc:odbc名称:jdbc:odbc:qeor7jdbc:odbc:wombatjdbc:odbc:wombat;CacheSize=20;ExtensionCase=LOWERjdbc:odbc:qeora;UID=kgh;PWD=fooey第9章JDBC编程技术9.2使用JDBC开发数据库应用9.2.1一个完整的例子程序9.1是一个采用JDBC-ODBC访问本地Access数据库的Java应用程序,演示了使用JDBC开发数据库应用的基本步骤。该程序连接到指定的数据源,然后检索表table1中的所有记录并输出。运行程序9.1,首先应使用Access创建一个数据库,该数据库包含一个表table1,然后建立一个数据源AccessDB,连接到该数据库。第9章JDBC编程技术【程序9.1】采用JDBC-ODBC访问本地Access数据库。importjava.sql.*;publicclassJDBCDemo{staticpublicvoidmain(Stringargs[]){JDBCDemoobj=newJDBCDemo();obj.AccessDB();}第9章JDBC编程技术ConnectiontheConnection;//数据库连接StatementtheStatement;//发送到数据库执行的SQL命令ResultSettheResult;//读取的数据ResultSetMetaDatatheMetaData;//数据库命令执行后,返回结果信息StringtheDataSource;//包含了被访问数据库或者数据源的名称,用URL形式表示StringtheUser;//数据库的用户名StringthePassword;//数据库的密码第9章JDBC编程技术publicvoidAccessDB(){openConnection();//打开数据库连接execSQLCommand(select*fromtable1);//从数据库中读取内容closeConnection();//关闭已经打开的数据库}publicvoidopenConnection(){第9章JDBC编程技术theDataSource=jdbc:odbc:AccessDB;theUser=;thePassword=;try{//装载JDBC-ODBC驱动程序Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);//如果采用VisualJ++6.0调试,请改为下面的语句//Class.forName(com.ms.jdbc.odbc.JdbcOdbcDriver);theConnection=DriverManager.getConnection(theDataSource,第9章JDBC编程技术theUser,thePassword);System.out.println(Connect:OK);}catch(Exceptione){handleException(e);}}publicvoidexecSQLCommand(Stringcommand){try{第9章JDBC编程技术theStatement=theConnection.createStatement();theResult=theStatement.executeQuery(command);theMetaData=theResult.getMetaData();intcolumnCount=theMetaData.getColumnCount();System.out.println(ColumnCount:+columnCount);while(theResult.next()){for(inti=1;i=columnCount;i++){StringcolValue=theResult.getString(i);第9章JDBC编程技术if(colValue==null)colValue=;System.out.print(colValue+;);}System.out.println();}}catch(Exceptione){handleException(e);}}第9章JDBC编程技术publicvoidcloseConnection(){try{theConnection.close();}catch(Exceptione){handleException(e);}}publicvoidhandleException(Exceptione){第9章JDBC编程技术System.out.println(e.getMessage());e.printStackTrace();if(einstanceofSQLException){while((e=((SQLException)e).getNextException())!=null){System.out.println(e);}}}}第9章JDBC编程技术9.2.2一般步骤一般来讲,使用JDBC开发数据库应用可分为下面几个步骤:(1)装载驱动程序;(2)建立与数据库的连接;(3)发送SQL语句;(4)处理结果;(5)关闭数据库连接。下面结合程序9.1具体介绍每个步骤的实现方法。第9章JDBC编程技术1.装载驱动程序装载驱动程序非常简单,只需要

1 / 91
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功