幻灯片 1 - staff.ustc.edu.cnstaff.ustc.edu.cn/~llyue/dblab12.pdf · •...
Transcript of 幻灯片 1 - staff.ustc.edu.cnstaff.ustc.edu.cn/~llyue/dblab12.pdf · •...
-
数据库实验指导(二)基于DBMS的应用设计
2012.3.26
-
实验助教
• 徐姣– [email protected]– 159569196200 电三楼415
• 桑若昕– [email protected]– 13655600642 电四楼420
• 张雪男– [email protected]–13739261609 电三楼415
mailto:[email protected]:[email protected]:[email protected]
-
上机安排
• 第7周开始• 实验周: 9,11,13• 每个实验周的周二、周四晚上
– 时间:18:30-21:30• 分为两次上机,因机位有限,原则上:
– 周二:学号为单号– 周四:学号为双号
-
上机要求
• 可自行选择DBMS– Oracle, MS SQL-Server ,MySQL 等
• 实验平台不限– Windows, Linux
• 开发语言不限– C/C++/C#, JAVA, PHP, Delphi, VB
• 实验均要当面检查通过并提交相应程序和文档;• 不统一规定检查时间,先做完的同学可先检查;• Deadline: 考试前• 注意不要COPY
-
实验安排
• 实验二:基于DBMS的应用设计– 旅行信息管理– 药品信息管理
-
设计要求• 设计步骤
– 分析– 设计– 运行
• 交源程序,可执行程序以及设计演示报告• 程序和文档提交地址:
ftp://pbdb:[email protected]:2121(尽量用ftp软件来登录ftp,文件管理器有可能会出现问题)• 上传形式:学号_姓名_第X次实验• (提交前需要通过检查,否则得分减半)
ftp://pbdb:[email protected]:2121/
-
评分要求:
• 基本功能(20%):完成实验要求的基本功能。• 界面设计(10%):软件具有较好的UI。• 模式设计(10%):数据库是否设计合理,包括表设计、主键、
索引、约束等。
• 健壮性(10%):是否能接受用户的错误输入。在错误发生后能否继续运行,能否给出相应提示。
• 易用性(10%):用户学习、操作、准备输入和理解输出时,所做努力的程度,即用户在使用本软件时是否方便。
• 创新性(10-20%):在完成基本实验要求以外的功能,其功能具有一定创新性。
• 代码(15%):代码风格是否优秀,是否考虑可重用,是否考虑事务。
• 文档(15%):文档说明是否完整、清晰。
-
连接数据库概述
• 连接数据库的方式:• ODBC连接数据库
—以vc中连接数据库为例
• JDBC连接数据库—以java中连接数据库为例
-
使用ODBC连接数据库
• ODBC概述• ODBC的工作原理• ODBC数据源设置• VC6-利用向导连接数据库• VC6中利用MFC ODBC连接(无向导)
-
ODBC概述
• ODBC(Open DataBase Connectivity, 开 放 式 数 据库
连 接), 是为数据库应用程序访问关系型数据库时提供的
一个统一的接口(API)。
• 对于不同的数据库,ODBC提供了一套统一的API,使得
应用程序可以访问任何一个提供ODBC驱动程序的数据库。
• ODBC只能用于访问关系型的数据库,很难访问对象数据
库和非关系型数据库。
-
ODBC 的工作原理
-
1.ODBC数据源设置
使用ODBC连接数据库之前注册一个数据源
1.首先进行ODBC数据源设置• 以windows+ oracle10g为例,也可以用ODBC连接其
他数据库如MySQL等• 用mysql的话要下载一个mysql connector/ODBC的驱
动程序
2.在具体的程序设计环境中使用ODBC连接数据库• 以vc6为例
-
1.ODBC数据源设置1.控制面板→管理工具→数据源 (ODBC), 在系统
DSN页面下,添加新的数据源(如demo)
点击添加
-
1.ODBC数据源设置2.选择所要添加的数据源类型,选择后点击“完成”
-
1.ODBC数据源设置3.配置Oracle ODBC驱动
测试连接
用户定义数据源名称
Oracle服务名
用户名
-
1.ODBC数据源设置4.配置完成,可以在ODBC数据源管理程序中看到新添加的Oracle数据源
-
2.VC6-利用向导连接数据库1.在AppWizard的第二步,选择第四项,点击”Data Source”进行配置
点击进入数据源选择
-
2.VC6-利用向导连接数据库2.选择要使用的数据源
-
2.VC6-利用向导连接数据库3.选择欲使用的表
-
2.VC6-利用向导连接数据库4.向导结束时可以发现多了一个继承自CRecordSet的类,它是根据用户选择的表自动生成的记录集类
-
3.VC6中利用MFC ODBC连接(无向导)
• MFC ODBC类简介• 利用MFC ODBC对数据库进行操作的基本步骤
• 介绍对数据库的基本操作
-
visual c++中提供了MFC ODBC类,封装ODBC API,这使得利用MFC来创建ODBC的应用程序非常简便。在利用ODBC 编程时,经常要使用到:
• CDatabase (数据库类):类对象提供了对数据源的连接,通过它你可以对数据源进行操作。
• CRecordSet (记录集类):类对象提供了从数据源中提取出的记录集,维护着数据源中被访问的当前记录。
• CRecordView(可视记录集类): 类对象能以控制的形式显示数据库记录。这个视图是直接连到一个CRecordSet 对象的表视图。
• 注:需包含afxdb.h
3.1 MFC ODBC类简介
-
3.2 利用MFC ODBC操作数据库的基本步骤
下面主要通过介绍查询数据库的操作来熟悉MFC ODBC
操作数据库的基本步骤
1. 建立一个CDatabase的实例CDatabase testdb;
2. 连接数据库testdb.OpenEx(_T("DSN=demo;UID=scott;PWD=tiger"),CDatabase::openReadOnly | CDatabase::noOdbcDialog);
3. 建立一个CRecordset的实例CRecordset testr(&testdb);
和CDatabase实例相连
-
3.2 利用MFC ODBC操作数据库的基本步骤
4. 执行一个初始化查询调用CRecordset的open方法打开记录集。
testr.Open(AFX_DB_USE_DEFAULT_TYPE,_T("select * from test"));
5. 取得查询结果(只取一条记录)CDBVariant dbvar;//CDBVariant对象表示用于MFC ODBC类的可变数据类型。CDBVariant允许存储值而不必关心值的数据类型
testr.GetFieldValue(short(0),dbvar);if (dbvar.m_dwType == DBVT_STRING) {
CString str=*(dbvar.m_pstring);}
-
3.2 利用MFC ODBC操作数据库的基本步骤
6. 取得查询结果(多条记录)short nFields = testr.GetODBCFieldCount( );while( ! testr.IsEOF( ) ) {
for( short index = 0; index < nFields; index++ ) { testr.GetFieldValue( index, varValue );// 对 varValue进行处理
}testr.MoveNext( );}
Move(),MoveNext(),MovePrev(),MoveFirst(),MoveLast() 移动记录到指定的地方
-
3.2 利用MFC ODBC操作数据库的基本步骤7. 最后要关闭连接,释放空间
testr.Close( );testdb.Close( );
-
3.3 对数据库的基本操作
• 添加记录先构造添加记录的SQL语句,然后调CDatabase类的
ExecuteSQL方法执行SQL语句,就将记录添加到数据库中如:
CSting sql= Insert into student(sid,sname,ssex,sage) vaues(‘PB0821*** ’,‘张三’,’男‘,22);
// 注意testdb为CDatabase类型testdb.ExecuteSQL(sql); 此时在查询数据库中student表便多了一条记录。
-
3.3 对数据库的基本操作
• 删除记录删除记录的方法和添加记录的处理方法是相的,只需构造
一个删除数据库记录的SQL语句(使用delete语句),然后利用CDatabase的ExecuteSQL方法删除记录即可。
• 修改记录修改记录的方法和添加记录的方法也一样的。修改记录
使用Update语句,然后利用CDatabase的ExecuteSQL方法删除记录即可。
• VC6的帮助 MSDN
-
总结:SQL 语句的直接执行(CDatabase上)如建立新
表,删除表,建立新的字段等等CDatabase::ExecuteSQL()
函数来完成SQL 语句的直接执行。
也可以直接调用CRecordset 类的AddNew、Update、
Delete 方法实现对数据库记录的添加、修改和删除的操作。
-
java中的JDBC连接数据库
• JDBC简介• java利用JDBC连接数据库常用的两种方式• java利用JDBC操作数据库的基本步骤
-
1. JDBC 简介
• jdbc简介
JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,由一组用 Java 编程语言编写的类和接口组成。JDBC 为数据库开发人员提供了一组标准的API,使他们能够用纯Java API 来编写数据库应用程序。
-
2. java中利用JDBC连接数据库常用方式• java连接数据库常用的两种形式
1) 通过JDBC-ODBC桥连接(必须创建数据源)
2) 通过数据库系统专用的JDBC驱动实现连接(工程中
要包含数据库厂商提供的JDBC驱动程序,不需要创建数据
源)
• JDBC中通过DriverManger类和Connection对象实现数据库的连接。
• 开发工具: eclipse 先将class12.jar包导入到工程中,oracle安装目录下
jdbc\lib中找到,也可到网上下载。引用必要的包
import java.sql.*; //它包含有操作数据库的 各个类与接口
-
3. 利用JDBC操作数据库的基本步骤JDBC操作数据库的基本步骤:与数据库建立连接
发送 SQL 语句处理结果
关闭数据库
下面以连接oracle 10g数据库并进行查询操作为例详细叙述其过程。
(1)加载数据库驱动,并创建连接Connection conn = null;Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");String url="jdbc:odbc:DatabaseDSN"; //使用数据//String strConn//="jdbc:oracle:thin:@host_name:port:database_sid";
1521
-
3. 利用JDBC操作数据库的基本步骤
String strUser="username";String strPassword="password";//创建连接conn=DriverManager.getConnection(strConn,strUser,strPassword);
(2)查询数据库:创建Statement对象并执行SQL语句以返回一个ResultSet对象。
Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery("select *
from DBTableName");
-
3. 利用JDBC操作数据库的基本步骤
(3) 获得信息ResultSet 包含符合 SQL 语句中条件的所有行,并且它通
过一套 get 方法(这些 get 方法可以访问当前行中的不同列)提供了对这些行中数据的访问。
String name=rs.getString("Name");int age=rs.getInt("age");float wage=rs.getFloat("wage");
next() last() previous()等方法来操作结果集中的记录指针
-
3. 利用JDBC操作数据库的基本步骤(4)关闭数据库(注意关闭的顺序先rs再stmt最后为con)
rs.close(); stmt.close();con.close();
另外:PreparedStatement接口由方法prepareStatement所创建,是Statement接口的子接口。以预编译方式执行SQL语句,效率可能会更高。
DatabaseMetaData接口主要用来得到关于数据库的信息ResultSetMetaData类用来获得数据库表的结构。
-
参考文献
• 《Visual c++ 与 Oracle 数据库编程案例》—电子工业出版社
• 《java数据库编程宝典》—电子工业出版社
• JDK_API_1_6_zh_CN.CHM• http://infolab.stanford.edu/~ullman
/fcdb/oracle.html
-
谢谢!
数据库实验指导(二)�基于DBMS的应用设计�实验助教上机安排上机要求实验安排设计要求 评分要求:�连接数据库概述使用ODBC连接数据库ODBC概述ODBC 的工作原理1.ODBC数据源设置1.ODBC数据源设置1.ODBC数据源设置1.ODBC数据源设置1.ODBC数据源设置2.VC6-利用向导连接数据库2.VC6-利用向导连接数据库2.VC6-利用向导连接数据库2.VC6-利用向导连接数据库3.VC6中利用MFC ODBC连接(无向导)3.1 MFC ODBC类简介3.2 利用MFC ODBC操作数据库的基本步骤3.2 利用MFC ODBC操作数据库的基本步骤3.2 利用MFC ODBC操作数据库的基本步骤3.2 利用MFC ODBC操作数据库的基本步骤3.3 对数据库的基本操作 3.3 对数据库的基本操作 java中的JDBC连接数据库1. JDBC 简介2. java中利用JDBC连接数据库常用方式3. 利用JDBC操作数据库的基本步骤3. 利用JDBC操作数据库的基本步骤3. 利用JDBC操作数据库的基本步骤3. 利用JDBC操作数据库的基本步骤参考文献谢谢!