清华面向对象程序设计:第11章
第11章面向对象程序设计精品PPT课件
3. 实现阶段
将编码、测试和集成组合在一起 连续的原型迭代 增加主函数和必要的外部函数,形成完整的程序。
11.2 面向对象的程序设计例题
例:编写某公司职工月薪管理程序
本程序中对公司职工的基本信息和月薪信息进行简单管理。
每个职工的基本信息包括职工种别、职工号、姓名、性别、出生日 期、受聘日期和当月月薪总额。职工种别分为经理、销售经理、推销员、 计时工和计件工五种。
Boss float MouthSalary virtual float earnings ( )
CommissionWorker float commission int quantity
virtual float earnings ( )
PieceWorker float wagePerPiece
分析 设计 实现 维护
1. 分析阶段
面向对象分析(OOA)构造对象三法则: 区分对象及其属性 区分整体对象及其组成部分 不同对象与类的形成及区分
面向对象分析(OOA)的五个主要步骤
标识对象 标识对象的属性 定义对象的方法 识别对象所属的类 定义主题
2.设计阶段
主体部件(PDC)的设计 用户界面部件(HIC)的设计 任务管理部件(TMC)的设计 数据管理部件(DMC)的设计
int quantity virtual float earnings ( )
HourlyWorker float wage float hours
virtual float earnings ( )
SaleBoss virtual float earnings ( )
详细设计后各类的组成和操作图
实现阶段
When You Do Your Best, Failure Is Great, So Don'T Give Up, Stick To The End
C 面向对象程序设计(2010年清华大学出版社出版的图书)
第1章计算机和C++编程入门 概述 1.1计算机系统 1.2编程和问题求解 1.3 C++入门 1.4测试和调试 小结 自测题答案 编程项目 第2章 C++基础知识 概述
图书五
内容简介
图书目录
《C++面向对象程序设计》从实际应用出发,系统地介绍C++面向对象程序设计的原理、方法和技巧。重点突 出,叙述清楚,深入浅出,论述详尽,使读者既能深刻领会面向对象程序设计的思想,了解面向对象程序设计的 特征,又能掌握C++语言的编程与应用。全书共8章,主要包括:面向对象程序设计语言概述、C++语言基础知识、 类和对象、对象成员和友员、继承和派生、多态性和运算符重载、模板、C++的输入/输出流。在每一章的知识点 后面,都给出了相应的程序设计实例,这些实例不仅有助于读者巩固知识点的内容,而且更有助于读者创新能力 的培养。
图书一
内容提要
目录
C++面向对象程序设计本书介绍了C++面向对象程序设计的基本知识和编程方法,以及C++面向对象的基本特征。 针对初学者的特点,本书力求通过大量实例、习题和上机实验题,以通俗易懂的语言讲解复杂的概念和方法,使读 者能深刻理解和领会面向对象程序设计的特点和风格,掌握其方法和要领,以期帮助读者尽快地迈入面向对象程 序设计的大门。
Savitch教授的研究领域包括复杂性理论、形式语言理论、计算语言学和计算机教材的开发。他因为对复杂 性理论所做的贡献而声名远扬,其中包括他提出的第一个完整语言(complete1anguage)范例。这个奠基性的
第11章 Windows 编程初步-面向对象程序设计(C++语言)(第二版)-程磊-清华大学出版社
❖ 第一种方法的特点是可以使应用程序更精炼,运 行效率更高,编写程序时有较大的自由度,但难 度较大;
❖ 第二种方法的特点是采用MFC提供的类库编写程 序,这些类中已经封装了大部分的Windows API 函数,还提供了编写不同程序类型的模版和框架, 所以编写程序比较容易,而且还允许直接调用 Windows API 函数来实现一些特殊的功能。
第三部分 Visual C++环境下Windows程序 开发概述
第11章 Windows 编程初步 第12章 MFC库和应用程序框架 第13章 综合设计实例– 简单绘图程序
第11章 Windows 编程初步
本章要点:
❖简单的Windows程序框架 ❖自定义类和Windows程序框架结合
在编写Windows 应用程序时,常采用两种方法: ❖ 一是使用Windows SDK ( Software development Kit,即
图11.5 向解决方案中添加新项
图11.6 添加main.cpp文件
(6)可以看到在“解决方案管理器”视图中的“源文件” 栏目中被添加了一个main.cpp文件,同时可以看到 Visual Studio开发工具的中间编辑窗口也打开了一个空 白的文件编辑窗口,在这里输入例11.1的源程序,然后保 存,如图11.7所示。
❖ Windows程序一般是一个可视化的窗口程序,通过操作 系统发送的消息来处理用户输入的数据,然后通过在窗口 上绘制或者把数据发给窗口上的组件来显示数据。
❖ 句柄就是一个标识符,用来区别同类对象或者资源的唯一 标志,可以认为它是个无符号整数或者一个指针均可。
第11章-面向对象与Java程序设计 (第3版)-微课视频版-朱福喜-清华大学出版社
第6页
11.1.3 JDBC的实现及其驱动程序
源的SQL请求。数据库驱动程序可修改应用程序的请求,使 得请求符合相关的DBMS所支持的文法。 ·数据源:由用户想要存取的数据以及与它相关的操作系统、 DBMS和用于访问DBMS的网络平台组成。
第5页
11.1.2 从ODBC到JDBC
2. JDBC的诞生
Java 刚诞生时,由于没有数据库API,编程人员不得不在 Java程序中加入C语言的ODBC函数调用。这就使Java的很多 优秀特性无法充分发挥,如平台无关性、面向对象特性等。
第4页
11.1.2 从ODBC到JDBC
1. ODBC的结构模型
ODBC包括4个主要部分: ·应用程序接口:屏蔽不同的ODBC数据库驱动程序之间函数
调用的差别,为用户提供统一的SQL编程接口。 ·驱动程序管理器:为应用程序装载数据库驱动程序。 ·数据库驱动程序:实现ODBC的函数调用,提供对特定数据
("jdbc:odbc:wombat", "login", "password"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM
Table1"); while (rs.next())
System.out.println(rs.getString("a") + " " +rs.getString ("b") + " " + rs.getString("c"));
面向对象程序设计c++11
方框中的代码是没有 异常处理机制的代码
C++
8- 4
8.1 异常处理
说明 如果预料某段程序代码有可能发生异常,就将它放在try 如果预料某段程序代码有可能发生异常,就将它放在try 子句的化括号中。如果这段代码运行时真的遇到异常情况, 子句的化括号中。如果这段代码运行时真的遇到异常情况, 其中的throw表达式就会抛出这个异常。 throw表达式就会抛出这个异常 其中的throw表达式就会抛出这个异常。 出现异常时, try语句块提示编译器到哪里查找 语句块提示编译器到哪里查找catch 出现异常时 , try 语句块提示编译器到哪里查找 catch 没有紧跟try块的catch块是没有作用的。 try块的catch块是没有作用的 块,没有紧跟try块的catch块是没有作用的。 当没有发生异常的时候,几乎没有和try try块相关的运行 当没有发生异常的时候,几乎没有和try块相关的运行 时成本。 时成本。查找匹配捕获处理异常的过程只在发生异常的情 况下才会进行。 况下才会进行。
void f( ) { try {throw 1;} catch (int e) { //do something; throw ; } } int main( ) { try { f(); } catch ( int e) {cout << “exception in main is ” << e;} return 0; }
第十一章 异常
8.1 异常处理
概述:程序的错误有两种:一种是编译错误,即语法错误。 概述:程序的错误有两种:一种是编译错误,即语法错误。 另一种是在运行时发生的异常(exception) 。 另一种是在运行时发生的异常 异常处理机制只处理运行时的差错和其它例外情况, 异常处理机制只处理运行时的差错和其它例外情况,不包 括编译错误。 括编译错误。 处理异常的方法有: 处理异常的方法有: 非结构化异常处理: 非结构化异常处理:用 exit (n) 或 return (n)的运行期错 的运行期错 误处理机制,具有“一个入口,多个出口”的特点。 误处理机制,具有“一个入口,多个出口”的特点。exit() 会清空流和关闭打开的文件。 却不会清空流, 会清空流和关闭打开的文件。abort()却不会清空流,也不 却不会清空流 关闭打开的文件。 关闭打开的文件。 结构化的异常处理: 警告—忽略 忽略” 对话—补救 补救” 结构化的异常处理:按“警告 忽略”、“对话 补救” 或安全退出等模式,使程序可以在对运行条件做出适当安 或安全退出等模式, 排或改善后继续运行下去。 排或改善后继续运行下去。
C++_面向对象程序设计_谭浩强 第十一章
基类成员属性 公有 保护 私有
派生类中 可以引用 可以引用 不可引用
派生类外 可以引用 不可引用 不可引用
基类:public: 在派生类和类外可以使用
protected: 在派生类中使用 private: 不能在派生类中使用
A
x(私有) y(保护) z(公有) A( ) Getx() Gety() ShowA()
第十一章
继承和派生类
继承性是面向对象程序设计中最重要的机制。 这种机制提供了无限重复利用程序资源的一 种途径。通过C++语言中的继承机制,可以 扩充和完善旧的程序设计以适应新的需求。 这样不仅可以节省程序开发的时间和资源,
并且为未来程序增添了新的资源。
class Student
{ int num;
的成员。我们称已存在的用来派生新类的类
为基类,又称为父类。由已存在的类派生出
的新类称为派生类,又称为子类。
在建立派生类的过程中,基类不会做任何改 变,派生类则除了继承基类的所有可引用的 成员变量和成员函数外,还可另外定义本身 的成员变量和处理这些变量的函数,由于派 生类可继承基类的成员变量和成员函数,因
可以引用 可以引用 不可引用
派生类外
不可引用 不可引用 不可引用
基类:public: (变为私有)在派生类中使用,类外不可使用 protected: (变为私有)在派生类中使用,类外不可使用 private: 不能在派生类中和类外使用
x(私私有) y(私有) privat z(私有) e A( ) 均为私有 Getx() 类B 外不 Gety() 能引用 ShowA() m(私有) x在类B新增加的成员 n(私有) 中不能直接调用 B() y在类B中可以调用 Show() z在类B中可以调用 Sum() 对类B的对象初始化即是对x,y,z,m,n等全部成员的初始化
第十一章 活动图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社
判断节点具有多个导出流,对于每条导 出流而言,应当在表示该控制流的箭头 上附加控制条件。
act 取款 输入i
[x>0] 列出数列第x项
[x<=0] 报错
合并节点
合并节点将多个控制流进行合并,并 统一导出到同一个离开控制流。
合并节点仅有逻辑意义而没有时间和 数据上的意义:几个动作都指向同一 个合并节点也并不意味着这些动作要 在进入之后互相等待或进行同步数据 之类的操作。
act 考试
主任务
并发任务A
分叉节点 并发任务B
结合节点 下一个主任务
对象流
act 考试
客户
订单中心
对象流是UML为填补活动图与面向对象 选择商品 思想之间的疏离而出现的。如果需要在 生成订单
活动图中表现对象流,则首先需要绘制
出泳道,且对象应该作为泳道的负责对
订单: Order [未支付]
象出现。
开始
终止
控制流
控制流是活动图中用于标示控制路径 的一种符号。它负责当一个动作或活 动节点执行完毕后,将执行主体从当 前已完毕的节点转移到过程的下一个 动作或动作节点。
控制流从活动图的开始标记开始运行, 经过顺序、分支等结构引导着各个动 作的连续执行。
act 取款
x=5
判断节点
判断节点是活动图中进行逻辑判断、并 创造分支的一种方法。
对业务流程建模
选择一个将要描述的重要过程,过程中尽量涉及数量少但是关键的对象 或参与者,将无关或关联很小的对象排除在外,为每一个对象或参与者 绘制泳道。
在总体业务流程中提取关键的动作或活动节点,并且将他们与对象或参 与者相对应;若发现有些动作无法对应,则考虑动作是否在这个流程中 起关键作用,或者是否遗漏了某些对象或参与者。
第11章 面向对象编程-Python程序设计-黄蔚-清华大学出版社
class Student:
构造方法
def __init__(self, ID, name, sex):
self.ID = ID
定义实例
属性
= name
实例方法
def sayhello(self): fmt = "Hello, " if self.sex == "female": fmt = fmt + "Ms. {}!" else:
(2)通过继承大幅减少冗余的代码,并可以方便地扩展现有代码,提高 编码效率,降低了软件维护的难度;
(3)通过对对象的辨别、划分,可以将软件系统分割为若干相对独立的 部分,在一定程度上更便于控制软件复杂度;
(4)以对象为中心的设计可以帮助开发人员从静态(属性)和动态(方 法)两个方面把握问题,从而更好地实现系统;
# 创建 Employee 类的第二个对象 emp2 = Employee("Manni", 5000) emp1.displayEmployee()
Name : Zara , Salary: 2000 Name : Manni , Salary: 5000 Total Employee 2
emp2.displayEmployee()
self.sex = sex
接下一页(续)
fmt = fmt + "Mr. {}!" print(fmt.format())
接上页(续)
st1 = Student("1111","Holly","female") st1.sayhello() st2 = Student("2222","John","male") st2.sayhello() print(, "的学号是", st1.ID)
软件工程导论课件之第11章面向对象设计
性实现。
软件工程导论课件之第11章面向对象 设计
4. 弱耦合 n 耦合指不同对象之间相互关联的紧密程度。 n 一般说来,对象之间的耦合可分为两大类:
q 交互耦合
n 如果对象之间的耦合通过消息连接来实现,则这种耦合 就是交互耦合。
要划分“主题”。
软件工程导论课件之第11章面向对象 设计
4. 使用简单的协议 n 一般说来,消息中的参数不要超过3个。当然,
不超过3个的限制也不是绝对的。 5. 使用简单的服务 n 一般说来,应该尽量避免使用复杂的服务。 n 如果一个服务中包含了过多的源程序语句,或
者语句嵌套层次太多,或者使用了复杂的 CASE语句,则应该仔细检查这个服务,设法 分解或简化它,考虑用一般-特殊结构代替。
软件工程导论课件之第11章面向对象 设计
6. 可重用 n 软件重用是提高软件开发生产率和目标系统质
量的重要途径。 n 重用基本上从设计阶段开始。 n 重用有两方面的含义:
q 一是尽量使用已有的类(包括开发环境提供的类库, 及以往开发类似系统时创建的类),
q 二是如果确实需要创建新类,则在设计这些新类的 协议时,应该考虑将来的可重复使用性。
1. 调整需求 n 有两种情况会导致修改通过面向对象分析所确
定的系统需求:
q 一是用户需求或外部环境发生了变化; q 二是分析员对问题域理解不透彻或缺乏领域专家帮
助。
n 无论出现上述哪种情况,通常都只需简单地修 改面向对象分析结果,然后再把这些修改反映 到问题域子系统中。
软件工程导论课件之第11章面向对象 设计
软件工程导论课件之第11章面向对象 设计
11.3.2 类构件
uml系统建模基础教程(清华大学出版社)课后题答案
UML习题答案第一章面向对象设计与UML1.填空题(1)基本构造块UML规则公共机制(2)名字属性操作(3)封装继承多态(4)继承(5)瀑布模型喷泉模型基于组件的开发模型XP开发模型2. 选择题(1)C(2)A B C D(3)A B C D(4)A B C(5)A3.简答题(1)类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。
类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性和相同行为的对象。
(2)1.UML是一种语言。
2. UML是用来建模的。
3.UML是统一的标准。
(3)建模能够帮助我们按照实际情况或按我们需要的形式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化。
在建模时应遵循以下原则:选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型不充分;对每个重要的系统最好用一组几乎独立的模型去处理。
(4)UML和面向对象软件开发之间有紧密的关系,可以说是面向对象软件开发促使了UML的产生。
但是由于在UML标准化的过程中,吸收了业务建模、工作流建模和数据库建模等领域的标准规范,形成了适应性很强的标准。
(5)在软件设计过程中,使用UML建模是为了能够更好地理解正在开发的系统。
通过UML建模,可以达到以下目的:有助于按照实际情况或按照所需要的样式对系统进行可视化;能够规约系统的结构或行为;给出了指导构造系统的模板;对做出的决策进行文档化。
第二章UML通用知识点综述1.填空题(1)依赖泛化关联实现(2)视图图模型元素(3)实现视图部署视图(4)构造型标记值约束(5)规格说明修饰通用划分2. 选择题(1)D(2)C(3)A(4)A B(5)D3.简答题(1)在UML中,定义了四种基本的面向对象的事物,分别是结构事物、行为事物、分组事物和注释事物等。
清华面向对象程序设计:第11章
11.2.6 处理查询结果集
Statement执行SQL 语句之后,将返回
一个结果集对象 ResultSet。每一个 ResultSet对象都有 一个游标(cursor) 指向结果集的当前
11.2 JDBC访问数据库
11.2.1 利用JDBC 访问数据库的基本步骤
1.加载JDBC驱动程序 2. 创建数据库连接 3.创建Statement 4.执行Statement 5.处理查询结果集 6.关闭数据库连接
11.2.2 加载JDBC驱动程序
1.加载Oracle JDBC驱动程序 2.加载Microsoft SQL Server JDBC驱动程
位置,游标的初始
位置是在结果集的 第一行之前,
游标(cursor)
第1行 第2行
… 第n行
Java应用程序 JDBC
OCI 驱动程序
ocixxx.dll
客户端
数据库服务器
Oracle DBMS
11.1.2 JDBC访问数据库的应用模型
通过JDBC访问数据库有两种应用模型: 一种是两层应用模型,另一种是三层应 用模型。 在两层应用模型中,客户端的Applet应用 程序或Application应用程序直接与数据库 服务器端的数据库建立连接,以便访问 数据库中的数据。
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery("SELECT Sno, Sname FROM Student"); SQL中的数据更新语句,例如DELETE语句,则可以使 用如下所示的代码:
C++程序设计(第2版下)清华出版社ppt
11.3.2 有成员对象的派生类的构造函 数
类的数据成员中除了一般的数据类型int、float、char,还可以包含类 对象,称为成员对象或子对象,即对象中的对象。 有成员对象的派生类构造函数的一般语法格式为: <派生类名>(<构造函数总参数表>):<基类构造函数>(<参数表1>),<成 员对象名>(<参数表2>)... { <派生类中成员初始化> }; 这里要注意的是,<参数表1>和<参数表2>中的参数都是来自于<构造 函数总参数表>。 执行派生类构造函数的顺序是: (1)调用基类构造函数,对基类数据成员初始化。 (2)调用成员对象构造函数,对成员对象数据成员初始化。 (3)再执行派生类构造函数本身,对派生类数据成员初始化。
• 继承常用来表示类属关系,不能将继承理解为构成关系。当从已有的 类中派生出新的类时,可以对派生类做以下几种变化:
(1)全部或部分地继承基类的成员数据或成员函数。 (2)增加新的成员变量。 (3)增加新的成员函数。 (4)重新定义已有的成员函数。 (5)改变现有的成员属性。
6
11.1.2 单一继承
8
11.1.3 多重继承
为一个派生类指定多个基类,这样的继承结构被称为多重继承。 多重继承形成一个有向无环圆,图11.3所示为多重继承的示意 图。
基类A
基类B
派生类C
图11.3 多重继承示意图
9
用多个基类来派生一个类时,其一般格式为:
class类名:<Access>类名1,<Access>类名2,…<Access>类名n
12
11.2.2 私有继承
精品-清华大学C语言课件 第11章06 综合应用
本讲大纲
1.用指针实现逆序存放数组元素 2.显示星期
用指针实现逆序存放数组元素
【例11.17】 本实例实现将数组中的元素值按照相反顺序存放。代码如下:
#include "stdio.h" void main() /*void inverte(int *x,int n);*/ int i, a[10] = 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 printf("The elements of original array:\n"); for (i = 0; i < 10; i++) printf("%d,", a[i]); printf("\n"); inverte(a, 10); printf("The elements has been inverted:\n"); for (i = 0; i < 10; i++) printf("%d,", a[i]); printf("\n"); getch(); inverte(int *x, int n) int *p, temp, *i, *j, m = (n - 1) / 2; i = x; j = x + n - 1; p = x + m; for (; i <= p; i++, j--) temp = *i; *i = *j; *j = temp;
程序运行效果如图11.39所示。
图11.39 构造字符串数组程序运行效果
Thank you
运行效果如图11.38所示。 图11.38 逆序存放数组
显示星期
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11.2.5 执行Statement
对于不同类型的SQL语句 , JDBC中的 语句, 中的Statement对象提 对于不同类型的 语句 中的 对象提 供了执行不同SQL语句的基本处理方法: Statement中定 语句的基本处理方法: 供了执行不同 语句的基本处理方法 中定 义的executeUpdate()成员方法用于执行数据定义和更新 义的 成员方法用于执行数据定义和更新 语句, 中定义的executeQuery()成员方法用于执 语句,Statement中定义的 中定义的 成员方法用于执 查询语句. 行SELECT查询语句. 查询语句 例如, 中的SELECT查询语句可以如下的代码: 查询语句可以如下的代码: 例如,SQL中的 中的 查询语句可以如下的代码 Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery("SELECT Sno, Sname FROM Student"); SQL中的数据更新语句 , 例如 中的数据更新语句, 语句, 中的数据更新语句 例如DELETE语句 , 则可以使 语句 用如下所示的代码: 用如下所示的代码: Statement stmt = conn.createStatement(); int rowcount = stmt.executeUpdate("DELETE FROM Student WHERE Sno = '04060001'");
客户端 Java客户端应用程序 Java客户端应用程序 HTTP RMI CORBA JDBC 客户端 应用服务器 JDBC 中间层的业务逻辑
数据库服务器 DBMS 数据库服务器 DBMS
两层结构的应用模型
三层结构的应用模型
11.1.3 JDBC中的主要类和接口
java.sql.DriverManager 建立与数据库的连接. 建立与数据库的连接. java.sql.Driver 驱动程序接口. 驱动程序接口. java.sql.Connection 用于建立与数据库的连接. 用于建立与数据库的连接. java.sql.Statement 用于执行静态的 用于执行静态的SQL语句. 语句. 语句 java.sql.ResultSet 执行 执行SQL查询返回的结果集. 查询返回的结果集. 查询返回的结果集 java.sql.SQLException SQL异常处理类. 异常处理类. 异常处理类
�
在处理完任务之后,程序必须自己关闭 结果集ResultSet对 象和Statement对 象, 而不能像一般的Java对象那样等待Java虚 拟机进行垃圾回收.这是因为这些对象 并不是我们利用new运算符创建的对象, 而是由底层JDBC驱动程序创建的,因此 必须用Java代码通知底层的驱动程序释放 它们,否则就有可能造成内存的泄漏, 导致数据库服务器资源的不足.
11.1.1 JDBC框架结构
Java应用程序 JDBC API
JDBC驱动程序管理器
JDBC Driver API
JDBC-ODBC桥驱动程序 ORACLE实现的 JDBC驱动程序 ODBC驱动程序 特定厂商实现的 JDBC驱动程序
ODBC Data Source
ORACLE
如IB2.6 处理查询结果集
Statement执行SQL 语句之后,将返回 一个结果集对象 ResultSet.每一个 ResultSet对象都有 一个游标(cursor) 指向结果集的当前 位置,游标的初始 位置是在结果集的 第一行之前,
游标(cursor) 第1行
第2行
… 第n行
11.2.7 关闭数据库连接
11.2.3 创建数据库连接
连接数据库的连接参数 URL 用于定位数据库 User 访问数据库的用户账号 Password 特定用户账号的密码
举例1: 驱动程序连接Oracle数据库的 数据库的URL: 举例 :用Oracle thin驱动程序连接 驱动程序连接 数据库的 : jdbc:oracle:thin:@host:1521:Student ============================================ 举例2: 驱动程序连接Oracle数据库的 数据库的URL: 举例 :用Oracle OCI驱动程序连接 驱动程序连接 数据库的 : jdbc:oracle:oci8:@host ============================================ 举例3:用Microsoft SQL Server驱动程序连接 举例 : 驱动程序连接SQL Server的 的 驱动程序连接 URL: : jdbc:microsoft:sqlserver://host; DatabaseName=Student
11.2.4 创建 创建SQL语句对象 语句对象
在建立了与数据库的连接后, 在建立了与数据库的连接后,应用程序可以在此连接 上创建SQL语句对象,以便执行用户定义的特定 语句对象, 上创建 语句对象 以便执行用户定义的特定SQL 语句. 语句.在Connection中,可以利用面向对象的重载技 中 术定义3种格式的 术定义 种格式的createStatement成员方法创建 成员方法创建 种格式的 Statement对象: 对象: 对象 Statement createStatement() throws SQLException; Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException; Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException;
第11章 数据库访问的编程技术
11.1 Java语言的数据库访问接口— JDBC
Java语言提供了一套访问关系数据库的应 用程序接口,即JDBC API.JDBC是Java Database Connectivity首字母的缩写,其 含义为Java数据库互连.它包含一组与访 问数据库有关的Java类和接口,是Java程 序访问数据库的基础,只要应用程序利 用JDBC就可以用统一的形式访问各种不 同的关系数据库.
11.2 JDBC访问数据库
11.2.1 利用 利用JDBC 访问数据库的基本步骤
1.加载JDBC驱动程序
2. 创建数据库连接
3.创建Statement
4.执行Statement
5.处理查询结果集
6.关闭数据库连接
11.2.2 加载 加载JDBC驱动程序 驱动程序 1.加载Oracle JDBC驱动程序 2.加载Microsoft SQL Server JDBC驱动程 序 3.加载InterClient JDBC驱动程序 4.加载JDBC-ODBC桥驱动程序
Java应用程序 客户端 数据库服务器
JDBC
OCI 驱动程序 Oracle DBMS ocixxx.dll
11.1.2 JDBC访问数据库的应用模型
通过JDBC访问数据库有两种应用模型: 一种是两层应用模型,另一种是三层应 用模型. 在两层应用模型中,客户端的Applet应用 程序或Application应用程序直接与数据库 服务器端的数据库建立连接,以便访问 数据库中的数据.