数据库课件04-第四章 SQL语言06.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动态SQL exec sql execute q1 using :birthYear; …. 例子3: 求选修某门课程号的学生和成绩, 按什么排序由查询者指定(仅给出程序段) …. //主变量说明 char orderBy[150]; strcpy(sqlString, “select Sno, Grade from SC where Cno=:C”); printf(“输入orderby子句:”); scanf(“%s”, orderBy); strcat(sqlString, orderBy); printf(“输入课程号:”); 查询需要返回结果,但是否是多个元组, 在编程时不能确定 动态SQL scanf(“%s”, givenCno); exec sql prepare query1 from :sqlString; exec sql declare cursor4 cursor for query; exec sql open cursor4 using :givenCno; while(1) { exec sql fetch cursor4 into :Sno, :Grade :GradeIn; if(sqlca.sqlcode==100) break; if(sqlca.sqlcode0) break; … } 访问数据库 DBMS DBMS 程序 DBMS 程序 API ODBC和JDBC ODBC:Open DataBase Connectivity JDBC:Java DataBase Connectivity 特点: 程序不需要重新编译,就可以在多个不同的DBMS上进行操作 可以同时访问多个DBMS ?在源代码级和代码执行级独立于DBMS … ODBC / JDBC 程序 ODBC和JDBC 体系结构:四个主要组件 应用 驱动器管理 多个数据源指定的驱动器 数据源 … ODBC / JDBC 程序 ODBC和JDBC 应用 初始化、终止与数据源的连接 通过定义好的ODBC/JDBC API,提交SQL语句、获得结果 驱动器管理 加载ODBC/JDBC 驱动器 从应用层传递ODBC/JDBC函数到正确的驱动器 处理从应用层提交的ODBC/JDBC初始化和信息调用,并纪录所用的功能调用。 执行初步的错误检测 ODBC和JDBC 驱动器 建立与数据源的连接 提交请求、返回请求结果 转换数据源与ODBC/JDBC间的数据格式、错误格式和错误代码 数据源 处理从驱动器发来的命令 返回结果 ODBC和JDBC 不同的体系结构 JDBC体系结构:通常有4种类型 桥 将JDBC函数调用直接翻译到另一种API,但不是到DBMS的本地API。例如:ODBC-JDBC桥。 应用只加载一个驱动器。 直接翻译到本地的(最初的)API 将JDBC函数调用直接翻译到某一个指定的数据源之上的API的方法调用。驱动器动态链接到指定的数据源上。 ODBC和JDBC 不同的体系结构 JDBC体系结构:通常有4种类型 网络桥 驱动器与网络中的中间件通讯,将JDBC函数调用翻译为DBMS指定的方法调用。 注意,客户方的驱动器(在网络桥场地的驱动器)通常不是面向DBMS的。 直接翻译到socket(套接字) 不直接调用DBMS API,驱动器通过JAVA socket与DBMS通讯。 注意,客户方的驱动器是面向DBMS的 使用JDBC的实例 JDBC是一组JAVA和接口的集合,用户可以用JAVA编程语言来直接访问数据库。 java.sql包中包括类和接口 使用JDBC的实例 数据源驱动器由Drivermanager类管理,维护当前加载的驱动器列表。 动态加入和删除驱动器 registerDriver, deregisterDriver, getDrivers 例子:动态加载一个数据源并建立连结 Class.forName(“oracle/jdbc.driver.OracleDriver”); Connection connection=DriverManager.getConnection(url, uid, pid); 使用JDBC的实例 例子:向Sailors关系中插入一条元组 connection.setAutoCommit(false); PreparedStatement pstmt = connection.prepareStatement(“INSERT INTO Sai

文档评论(0)

潮起潮落 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档