如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第十三章数据库编程配置数据库JDBC概述1.微软ODBC:用C编写,且只适于Windows平台,无法实现跨平台地操作数据库。2.SQL语言:尽管包含有数据定义、数据操作、数据管理等功能,但它并不是一个完整的编程语言,且不支持流控制,需要与其它编程语言相配合使用。3.JDBC的设计:由于Java语言具有健壮性、安全、易使用并自动下载到网络等方面的优点,因此如果采用Java语言来连接数据库,将能克服ODBC局限于某一系统平台的缺陷;将SQL语言与Java语言相互结合起来,可以实现连接不同数据库系统,即使用JDBC可以很容易地把SQL语句传送到任何关系数据库中。4.JDBC设计的目的:是一种规范,设计它最主要的目的是让各个数据库开发商为Java程序员提供标准的数据库访问类和接口,使得独立于DBMS的Java应用程序的开发成为可能(数据库改变,驱动程序跟着改变,但应用程序不变)。1.创建与数据库的连接;2.发送SQL语句到任何关系型数据库中;3.处理数据并查询结果。try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//(1)创建与数据库的连接Connectioncon=DriverManager.getConnection("jdbc:odbc:DatabaseDSN","Login","Password");Statementstmt=con.createStatement();//(2)发送SQL语句到数据库中ResultSetrs=stmt.executeQuery("select*fromDBTableName");while(rs.next()){Stringname=rs.getString("Name");//(3)处理数据并查询结果。intage=rs.getInt("age");floatwage=rs.getFloat("wage");}rs.close();//(4)关闭stmt.close();con.close();}catch(SQLExceptione){}1.ODBC用C语言编写,非面向对象;JDBC用Java编写,面向对象。2.ODBC难以学习,因为它把简单的功能与高级功能组合在一起,即便是简单的查询也会带有复杂的任选项;而JDBC的设计使得简单的事情用简单的做法来完成。3.ODBC是局限于某一系统平台的,而JDBC提供Java与平台无关的解决方案。4.也可以通过Java来操作ODBC,这可以采用JDBC-ODBC桥接方式来实现(因为Java不能直接使用ODBC,即在Java中使用本地C的代码将带来安全缺陷)。JDBC驱动程序的类型这类驱动程序的特色是必须在使用者端的计算机上事先安装好ODBC驱动程序,然后通过JDBC-ODBC的调用方法,进而通过ODBC来存取数据库。Application--->JDBC-ODBCBridge---->JDBC-ODBCLibrary--->ODBCDriver-->Database优点:只要有对应的ODBC驱动(大部分数据库厂商都会提供),几乎可以访问所有的数据库。缺点:执行效率比较低,不适合大数据量存取的应用;由于需要客户端预装对应的ODBC驱动,不适合Internet/Intranet应用。这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。注意,象桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。利用开发商提供的本地库来直接与数据库通信。Application-->JDBCDriver-->NativeDatabaselibrary-->Database这种驱动方式将数据库厂商的特殊协议转换成Java代码及二进制类码,使Java数据库客户方与数据库服务器方通信。例如:Oracle用SQLNet协议,DB2用IBM的数据库协议。数据库厂商的特殊协议也应该被安装在客户机上。这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上。所用的具体协议取决于提供者。通常,这是最为灵活的JDBC驱动程序。有可能所有这种解决方案的提供者都提供适合于Intranet用的产品。为了使这些产品也支持Internet访问,它们必须处理Web所提出的安全性、通过防火墙的访问等方面的额外要求。几家提供者正将JDBC驱动程序加到他们现有的数据库中间件产品中。Application--->JdbcDriver----->javamiddleware--->JDBCDr