您好,欢迎访问三七文档
第14讲数据库开发技术主要内容―数据库简介―JDBC简介―数据库连接技术有关参考资料•张晓东等,Java数据库高级教程,清华大学出版社,2004年1月•李大友,《Java语言实验指导》清华大学出版社,2004年2月14.1数据模型1)层次数据模型用树形结构表示实体及其之间的联系的模型。特点:适合用于表示一对多的联系2)网状数据模型用网状结构表示实体及其之间的联系的模型。特点:适合于表示多对多的联系,缺陷是难以实现系统扩充,插入或删除数据时涉及到大量链接指针的调整。学号姓名性别生日班级......9800198002......张山李四......男男......80/5/1281/3/24......98-计算机98-计算机........................3)层次数据模型一张二维表,表格中的每一行代表实体,称为记录;每一列称为数据项。记录的集合称为关系。关系具有如下性质:(1)数据项不可再分;(2)关系中的列同性质,称为属性,属性之间不能重名;(3)关系中不能出现相同的记录,记录的顺序无所谓;(4)每个关系都有一个主键,能唯一地标识关系中的一个记录;(5)关系中的列的顺序不重要。14.2数据库平台Oracle数据库:Oracle9i特性:使数据库更具有可用性以及更多的联机操作,以减少脱机维护的需要;新的版本使得管理数据库更加方便;Oracle9i可以自动创建和管理数据库所需的底层操作系统文件等。SQLServer数据库:SQLServer2000是一个关系数据库管理系统,最初由Microsoft,Sybase和Ashton-Tate三家公司共同开发的。Sybase数据库是一个面向联机事务处理,具有高性能,高可靠性的功能强大的关系型数据库管理系统(RDBMS)Access数据库:Access2000面向桌面用户的个人数据库系统,实用于桌面用户。数据库操作简单,性能,容量等因素不及大型数据库系统,但对于个人桌面用户的简单数据库应用已经足够了。14.3JDBC连接技术1)SQL语言(结构化查询语言)功能:同各种数据库建立联系,进行沟通。SQL是非过程化语言。一次处理一个记录,对数据提供自动导航。统一语言。可用于所有用户的DB活动模型包括系统管理员,数据库管理员,应用程序员等。SQL是所有关系数据库的公共语言。SQL语言包含:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL14.3JDBC连接技术2)JDBC由一组Java语言编写的类和接口组成,使用嵌入式的SQL。主要功能:①建立与数据库的连接,②执行SQL声明③处理SQL执行结果;3)JDBC的发展①1995年Java风靡全球②1996年夏天推出JDBC工具,在JDK1.x版本中,JDBC是一个可选部件③JDK1.1中,JDBC已作为其中的一部分访问方式:Java应用程序JDBC服务器各种数据库4)JDBC的结构和特点JDBC包含两部分与数据库独立的API:面向程序开发人员的JDBCAPI和面向底层的JDBCDriverAPI;1)面向程序开发人员的JDBCAPI:抽象的Java接口①java.sql.DriverManager:处理驱动的调入并且对产生新的数据库连接提供支持;②java.sql.Connection:代表对特定数据库的连接③java.sql.Statement:代表一个特定的容器,来对一个特定的数据库执行SQL语句④java.sql.ResultSet:控制对一个语句的行数据的存取。java.sql.Statement包含两个子类:①java.sql.PrepareStatement用于执行预编译的SQL语句;②java.sql.CallableStatement用于执行对一个数据库内嵌过程的调用。驱动程序管理器连接连接连接Statement语句Statement语句Statement语句Statement语句结果集结果集结果集JDBCAPI结构图针对数据库厂商开发数据库底层驱动程序使用的,一般程序员用不到这些类库。Java程序员通过SQL包中定义的一系列抽象类对数据库进行操作,而实现这些抽象类并完成实际操作,则是由数据库驱动器Driver运行的,如图(续)2)面向底层的JDBCDriverAPIJDBCDriverAPI结构图Java应用程序JDBCAPIJDBC管理器JDBCDriverAPIJDBC-Net驱动程序JDBC-ODBC驱动程序ODBC和DB驱动程序驱动程序A驱动程序BJDBC可以选用的驱动程序JDBC的Driver:①JDBC-ODBCBridge和ODBCDriver通过ODBC驱动器提供数据库连接。要求每台客户机都装入了ODBC②Native-APIpartly-JavaDriver将数据库厂商的特殊协议转换成Java代码及二进制代码,使Java数据库客户方与数据库服务器通行,要求客户机上装有DBMS驱动程序。③JDBC-NetAll-JavaDriver将JDBC指令转化成独立于DBMS的网络协议形式,再由服务器转化为特定DBMS的协议形式。④Native-protocolAll-JavaDriver将JDBC指令转化成网络协议后不再转化,而是由DBMS直接使用。JDBC支持两种不同的模型①两层模型Java的应用程序直接与数据库联系,用户的SQL声明被提交给数据库,执行结果回送给用户②三层模型用户的命令首先发送给一个所谓的中间层,中间层再将SQL声明发给DMBS,执行结果也同样由中间层转交。数据库连接技术的一般步骤:1)引入相应的类;2)选择合适的JDBC驱动程序并加载;3)分配一个Connection对象;4)分配一个Statement对象;5)用该Statement对象进行查询等操作;6)从取得的ResultSet对象中获取相应的数据;7)关闭ResultSet对象;8)关闭Statement对象;9)关闭Connection对象;14.4Access数据库连接技术1引入相应类引入相应的包:importjava.sql*必要时引入JDBC-ODBC驱动程序包:importsun.jdbc.odbc.JdbcOdbcDriver申明下列对象ResultSetrs=null;Connectionconnection=null;加载相应数据源①前提:存在Access数据库②步骤控制面板管理工具ODBCODBCDataSourceAdministrator对话框选择UserDNS选项卡单击Add按钮在弹出的对话框中选择MicrosoftAccessDriver选项弹出ODBCMisrosoftAccessSetup在DataSourceName文本框填入数据源的名称和在文本框Description填入描述信息单击Select按钮将数据库与某一个数据库文件相联2装载驱动程序Class.forName()会抛出异常ClassNotFoundExceptiontry{Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”)}catch(ClassNotFoundExceptione){System.out.println(e.getMessage);}3连接数据库调用DriverManager.getConnectionDriverManager.getConnection(Stringurl,Stringdbname,Stringpassword)a)url为一种URL,一种JDBC连接所特定的URL。b)JDBCURL提供了一种表示数据库的方法,可以使相应的驱动程序能识别该数据库并与之建立连接。c)JDBCURL由三个部分组成①Jdbc-协议,JDBCURL中的协议总是jdbc②子协议-驱动程序或数据库连接机制的名称,典型示例是odbc③子名称-一种标识数据库的方法。子名称可以依不同的子协议而变化,还可以有下一级名称。使用子名称的目的是为定位数据库提供足够信息。d)协议的完整语法为:jdbc:odbc:数据资源名称[;属性名=属性]StringdbUrl=“jdbc:odbc:IProducts”Connectionconnection=DriverManager.getConnection(dbUrl,””,””);4数据库查询JDBC提供三个类,向数据库发送SQL语句①Statement由createStatement所创建,发送简单的SQL语句②PreparedStatement由PreparedStatement创建,用于发送带有一个或多个输入参数(IN参数)的SQL语句③CallableStatement由prepareCall所创建,用于执行SQL存储过程,通过名称来调用SQL语句创建statemen对象Statementstatement=conn.createStatement();发送SQL语句ResultSetrs=null;Stringsql=“SELECT*FROMProductWHERECatalogID=‘002’”;rs=statement.executeQuery(sql);显示数据while(rs.next()){System.out.print(rs.getString(“ProductName”+”--”))System.out.print(rs.getString(“ProductPrice”))}JDBC同SQLServer数据库连接技术使用前述方法进行连接其他连接方法,如使用微软公司开发的软件包:com.microsoft.*Connection类是数据库对话的JDBC表示,为应用程序提供了对话的Statement对象和它的子类。代表了与某一数据库的连接,支持SQL声明的创建。实例方法。①creatStatement()创建一个本连接的;②getMetaData()获取这个连接的数据库的原数据。Statement类用于将SQL语句发送到数据库中实例方法①publicResultSetexecuteQuery(Stringsql)throwsSQLException//执行SQL语句:查询②publicintexecuteUpdate(Stringsql)throwsSQLException//执行SQL语句:插入,更新,删除③publicvoidclose()throwsSQLException//关闭StatementResultSet类包含符合SQL语句中条件的所有行,并通过一系列get方法提供了对这些行中数据的访问。实例方法publicbooleannext()throwsSQLException//移动到ResultSet中的下一行,使下一行成为当前行。publicResultSetMetaDatagetMetaData()throwsSQLException//ResultSet对象的列的属性。publicStringgetString(intcolumnIndex)throwsSQLException//返回当前行指定列的值(字符形式返回)publicStringgetString(Stringcolumnname)throwsSQLException//返回当前行指定列的值(字符形式返回)学号姓名性别生日班级......9800198002......张山李四......男男......80/5/1281/3/24......98-计算机98-计算机........................ResultSetMetaDataResultSet对象中的列属性和类型,包括列数publicintgetColumnCount()throwsSQLException//返回列数publicStringgetColumnName(intcolumn)throwsSQLException//返回指定列的名字co
本文标题:数据库开发技术
链接地址:https://www.777doc.com/doc-3359561 .html