第11章数据库应用

上传人:熏** 文档编号:243135209 上传时间:2024-09-16 格式:PPT 页数:36 大小:279.50KB
返回 下载 相关 举报
第11章数据库应用_第1页
第1页 / 共36页
第11章数据库应用_第2页
第2页 / 共36页
第11章数据库应用_第3页
第3页 / 共36页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Java2,程序设计实用教程(第,2,版),*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Java2,程序设计实用教程(第,2,版),*,Java2,程序设计实用教程,第,2,版,叶核亚,Java2,程序设计实用教程,(第,2,版),第,1,章,Java,概述,第,2,章,Java,语言基础,第,3,章 面向对象的核心特性,第,4,章 接口、内部类和包,第,5,章 异常处理,第,6,章 图形用户界面,第,7,章 多线程,第,8,章,Applet,应用程序,第,9,章 输入,/,输出流和文件操作,第,10,章 网络通信,第,11,章 数据库应用,第,12,章,JSP,第,13,章 综合应用设计,第,11,章 数据库应用,11.1,关系数据库系统,11.2,结构化查询语言,SQL,11.3 JDBC,Java2,程序设计实用教程(第,2,版),11.1,关系数据库系统,11.1.1,数据库系统,11.1.2,关系模型,11.1.3,客户,-,服务器结构的关系数据库系统,11.1.4,使用,Access,数据库,11.1.5,使用,SQL Server,数据库,Java2,程序设计实用教程(第,2,版),11.1.1,数据库系统,数据库系统概念,数据库,数据库管理系统,数据库系统,数据描述中的术语,实体、实体集、实体的属性,数据模型,数据结构、数据操作和数据完整性约束,Java2,程序设计实用教程(第,2,版),11.1.2,关系模型,关系模型的数据结构,关系:二维表、列、行。,关系的性质,主键与外键,关系模式,关系(列,,列,),例如,学生(,学号,,姓名,性别,省份,地区,出生年月,民族,团员),课程(,课程号,,课程名,学分,学时),学生成绩(,学号,,,课程号,,成绩),Java2,程序设计实用教程(第,2,版),11.1.2,关系模型,关系模型的数据操纵,关系模型的数据完整性规则,实体完整性规则,参照完整性规则,用户定义的完整性规则,CHECK,(,AGE BETWEEN 15 AND 30,),Java2,程序设计实用教程(第,2,版),11.1.3,客户,-,服务器结构的关系数据库系统,数据库的结构与功能分布,数据库结构,图,11.1,基于网络、具有客户,-,服务器结构的关系数据库系统,Java2,程序设计实用教程(第,2,版),数据库功能分布,图,11.2,客户,-,服务器结构的数据库系统的功能分布,Java2,程序设计实用教程(第,2,版),11.1.3,客户,-,服务器结构的关系数据库系统,数据库连接,数据库连接技术分类,ODBC,数据库应用程序,Java2,程序设计实用教程(第,2,版),11.1.4,使用,Access,数据库,Access,数据库的操作,【,例,11.1】,使用,Access,数据库创建,student,数据库及表。,创建,Access,数据库文件,数据库文件名为,s,tudent.mdb,。,创建表,输入数据,配置,ODBC,数据源,Java2,程序设计实用教程(第,2,版),11.1.5,使用,SQL Server,数据库,安装,Microsoft SQL Server 2000,SQL Server,服务管理器,企业管理器,创建数据库,创建表,为指定表添加数据,创建表的关系图,设置数据库管理员,sa,的身份,查询分析器,Java2,程序设计实用教程(第,2,版),11.2,结构化查询语言,SQL,11.2.1 SQL,概述,11.2.2,数据定义,11.2.3,数据更新,11.2.4,数据查询,Java2,程序设计实用教程(第,2,版),11.2.1 SQL,概述,SQL,数据库的体系结构,SQL,的特点与组成,表,11.3 SQL,语言的动词,SQL,语言的使用方式,SQL,功能,动,词,说,明,数据定义,CREATE,、,DROP,、,ALTER,创建表、删除表、修改表,数据操纵,INSERT,、,UPDATE,、,DELETE,插入、更新、删除,数据查询,SELECT,查询,数据控制,GRANT,、,REVOKE,授予权限、收回权限,Java2,程序设计实用教程(第,2,版),11.2.2,数据定义,创建基本表,CREATE TABLE,基本表,(,列 数据类型,列级完整性约束,列 数据类型,列级完整性约束,表级完整性约束,),CREATE TABLE,stuinfo,(,stu,# varchar(10) NOT NULL UNIQUE,stu_name,varchar(10),sex varchar(2),province varchar(10),area varchar(10),birthday,datetime,nation varchar(10) DEFAULT ,汉,member bit,PRIMARY,KEY(stu,#),Java2,程序设计实用教程(第,2,版),11.2.2,数据定义,修改基本表,ALTER TABLE,基本表,ADD,新列 数据类型,列级完整性约束,MODIFY,列 数据类型,DROP,完整性约束,ALTER TABLE,stuinfo,ADD department varchar(20),删除表,DROP TABLE,表,Java2,程序设计实用教程(第,2,版),11.2.3,数据更新,插入数据,INSERT INTO,基本表,(列,1,列,2,),VALUES,(值,1,值,2,),例如,,INSERT INTO,stuinfo,VALUES (98111001, ,蔡尧强, ,男, ,浙江, ,金华, 1980-1-20, ,汉, 1, NULL),INSERT INTO,stuinfo,(,stu,#,stu_name,),VALUES (98111041, ,李伟,),Java2,程序设计实用教程(第,2,版),11.2.3,数据更新,修改数据,UPDATE,基本表,SET,列,=,表达式,,列,=,表达式,WHERE,条件表达式,例如,,UPDATE,stuinfo,SET sex = ,男,province = ,江苏,area = ,南京,WHERE,stu,# = 98111041,删除数据,DELETE FROM,表,WHERE,条件表达式,Java2,程序设计实用教程(第,2,版),11.2.4,数据查询,SELECT,语句语法,SELECT ALL | DISTINCT,列表达式,,列表达式,FROM,表,WHERE,条件表达式,GROUP BY,列,HAVING,条件表达式,ORDER BY,列,ASC|DESC,运算符,=,、,、,、,、,=,、,AND,、,OR,、,LIKE,集函数,AVG( ALL | DISTINCT ,列名,),COUNT(*),、,COUNT(,列名,),SUM(,列名,),、,MAX(,列名,),、,MIN(,列名,),Java2,程序设计实用教程(第,2,版),11.3 JDBC,11.3.1 JDBC,的作用和功能,11.3.2,指定,JDBC,驱动程序,11.3.3,连接数据库,11.3.4,执行,SQL,语句,11.3.5,处理数据查询的结果集,Java2,程序设计实用教程(第,2,版),11.3.1 JDBC,的作用和功能,什么是,JDBC,JDBC,(,Java,DataBase,Connectivity,,,Java,数据库连接)是基于,Java,的、用于访问关系数据库的应用程序编程接口。,JDBC,驱动程序类型,JDBC-ODBC,桥驱动程序,本地库,Java,实现驱动程序,网络协议驱动程序,数据库协议驱动程序,Java2,程序设计实用教程(第,2,版),图,11.16 JDBC,驱动程序类型及其工作原理,Java2,程序设计实用教程(第,2,版),3. JDBC API,的基本功能、组成和工作原理,图,11.17 JDBC API,的组成和工作原理,Java2,程序设计实用教程(第,2,版),11.3.2,指定,JDBC,驱动程序,选择和安装,JDBC,驱动程序,安装,Microsoft SQL Server 2000 JDBC,驱动程序,为,JDK,在环境变量,classpath,中添加路径,在,JCreator,中添加路径,在应用程序中指定,JDBC,驱动程序,public static,Class,forName(,String,className,) throws,ClassNotFoundException,例如,,Class.forName(“sun.jdbc.odbc.JdbcOdcDriver,”);,Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver,”);,Java2,程序设计实用教程(第,2,版),11.3.3,连接数据库,DriverManager,类创建与指定数据库连接,public class,DriverManager,public static Connection,getConnection(String,url, String user, String password),throws,SQLException,public static Connection,getConnection(String,url,) throws,SQLException,例如,,Connection,connection,=,DriverManager.getConnection,(,jdbc:odbc:student_access,);,Connection,connection,=,DriverManager.getConnection,(,jdbc:microsoft:sqlserver:/localhost:1433;,DatabaseName,=student, ,sa, ,yeheya,);,Java2,程序设计实用教程(第,2,版),2. Connection,接口管理连接对象,public interface Connection,Statement,createStatement,() throws,SQLException,; /,创建执行,SQL,的语句对象,Statement,createStatement(int,resultSetType,int,resultSetConcurrency,) throws,SQLException,;,/,参数指定结果集属性,void close() throws,SQLException,; /,关闭数据库连接,boolean,isClosed,() throws,SQLException,; /,判断数据库连接是否已关闭,DatabaseMetaData,getMetaData,() throws,SQLException,; /,获取所连接数据库的元数据,Java2,程序设计实用教程(第,2,版),3.,DatabaseMetaData,接口获得数据库元数据,public interface,DatabaseMetaData,String,getURL,() throws,SQLException,; /,返回连接数据库的,URL,String,getUserName,() throws,SQLException,; /,返回数据库的用户名,String,getDatabaseProductName,() throws,SQLException,; /,返回数据库名称,String,getDatabaseProductVersion,() throws,SQLException,;/,返回数据库版本号,String,getDriverName,() throws,SQLException,; /,返回驱动程序名称,String,getDriverVersion,() throws,SQLException,; /,返回驱动程序版本号,Java2,程序设计实用教程(第,2,版),【,例,11.2】,连接指定数据库并获得数据库属性信息。,数据库操作类,GetDBMessage,类,Java2,程序设计实用教程(第,2,版),11.3.4,执行,SQL,语句,Statement,接口及其方法声明如下:,public interface Statement,int,executeUpdate(String,sql,) throws,SQLException,; /,执行数据定义和数据更新,SQL,语句,ResultSet,executeQuery(String,sql,) throws,SQLException,;/,执行数据查询,SQL,语句,boolean,execute(String,sql,) throws,SQLException,; /,执行,SQL,语句,int,getUpdateCount,() throws,SQLException,; /,获得数据更新所影响的行数,ResultSet,getResultSet,() throws,SQLException,; /,获得数据查询结果集,void close() throws,SQLException,; /,关闭语句,Java2,程序设计实用教程(第,2,版),11.3.4,执行,SQL,语句,执行数据定义和数据更新,SQL,语句,Statement,statement,=,connection.createStatement,();,String,sql,= INSERT INTO,stuinfo,(,stu,#,stu_name,) VALUES (98111041, ,李伟,);,int,result =,statement.executeUpdate(sql,); /,执行成功时返回影响的行数,1,执行数据查询,SQL,语句,String,sql,= SELECT * FROM,stuinfo,;,ResultSet,resultset,=,statement.executeQuery(sql,);,执行,SQL,语句,调用,execute(),方法执行,SQL,语句;,调用,getResultSet,(),方法获得数据查询结果集,调用,getUpdateCount,(),方法获得数据更新所影响的行数。,Java2,程序设计实用教程(第,2,版),11.3.5,处理数据查询的结果集,ResultSet,接口存储结果集,当前行,int,getRow,() throws,SQLException,; /,获得当前行位置,boolean,next() throws,SQLException,; /,设置当前行的后一行成为新的当前行,获得当前行指定列的数据项值,Object,getObject(int,columnIndex,) throws,SQLException,;,Object,getObject(String,columnName,) throws,SQLException,;,String,getString(int,columnIndex,) throws,SQLException,;,String,getString(String,columnName,) throws,SQLException,;,例如,,while(resultset.next,(),System.out.println(resultset.getString(1); /,获得当前行指定列的值,Java2,程序设计实用教程(第,2,版),2.,ResultSetMetaData,接口从结果集中获得元数据,public interface,ResultSetMetaData,int,getColumnCount,() throws,SQLException,; /,返回列数,String,getColumnName(int,column) throws,SQLException,; /,返回列名,String,getColumnTypeName(int,column) throws,SQLException,; /,返回列数据类型名,int,getColumnDisplaySize(int,column) throws,SQLException,; /,返回列所占的最大字符宽度,例如,,ResultSetMetaData,rsmd,=,resultset.getMetaData,(); /,返回元数据对象,int,columnCount,=,rsmd.getColumnCount,(); /,获得列数,Java2,程序设计实用教程(第,2,版),【,例,11.3】,执行数据操纵的,SQL,语句。,执行数据更新,SQL,语句的方法,执行数据查询,SELECT,语句的方法,调用上述,insert(),方法和,select(),方法的应用程序,Java2,程序设计实用教程(第,2,版),3.,ResultSet,接口功能进一步讨论,指向当前行的指针,void,beforeFirst,() throws,SQLException,;,void,afterLast,() throws,SQLException,;,boolean,isBeforeFirst,() throws,SQLException,;,boolean,isAfterLast,() throws,SQLException,;,例如,,int,rowCount,=0;,while(resultset.next,(),rowCount,+; /,获得结果集总行数,beforeFirst,();,Java2,程序设计实用教程(第,2,版),2.,结果集属性,Statement,createStatement(int,resultSetType,int,resultSetConcurrency,) throws,SQLException,;,例如:,Statement,statement,=,connection.createStatement,(,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY,);,Java2,程序设计实用教程(第,2,版),实验,11,数据库应用设计,为课程表和学生成绩表设计数据库应用程序,图形用户界面的数据库应用设计,Java2,程序设计实用教程(第,2,版),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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