OCCI中文编程指南

上传人:工**** 文档编号:467081370 上传时间:2022-08-16 格式:DOC 页数:21 大小:359KB
返回 下载 相关 举报
OCCI中文编程指南_第1页
第1页 / 共21页
OCCI中文编程指南_第2页
第2页 / 共21页
OCCI中文编程指南_第3页
第3页 / 共21页
OCCI中文编程指南_第4页
第4页 / 共21页
OCCI中文编程指南_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《OCCI中文编程指南》由会员分享,可在线阅读,更多相关《OCCI中文编程指南(21页珍藏版)》请在金锄头文库上搜索。

1、1.0CCI编程模式1.1. 总体流程图编写0CCI程序的总体流程图,如下所示:创建环境变量创建数据库连 接对象创建 Stateme nt类对象执行SQL语句处理数据释放 Stateme nt对象断开数据库连接释放环境变量1.2. 执行SQL语句的流程图在OCCI中处理 SELECT语句跟处理INSERT、UPDATE、CREATE等语句的方法是不一样的,其中SELECT语句是有返回结果,其它语句没有返回结果,所以必须区分SQL语句是否为查询语句,然后按照各自的流程处理。流程图如下所示:注:标*号的过程为可选项2.流程图具体说明2.1. 创建与终止OCCI环境变量创建OCCI环境变量Envir

2、onment类是OCCI程序的基础类, 所有的OCCI对象的建立都是依计 Environment 对象来创建的,所以 Environ me nt对象的建立必须放在第一位,而且也必须是最后一个被终 止的。例如:首先创建一个Environment对象env,然后通过 env创建一个 Conn ection对象conn, conn是连接了数据库的对象;终止时,却反过来先终止对象conn,再终止对象env。具体Environment对象的创建方法如下所示:En viro nment *env = Environmen t:createE nvironmen t();注意:createE nvironm

3、ent()方法有以下几个参数模式:1 在 线 程 环 境 中 运 行 分 为 互 斥 线 程 (THREADEC_MUTEXED) 、 并 行 线 程(THREADEC_UMMUTEXED) 。2 使用对象( OBJECT )。3 利用共享数据结构( SHARED )。终止 OCCI 环境变量Environment 对象的终止必须是放在最后一位,即等所有其它 OCCI 对象被终止完后再 终止 Environment 对象。终止 Environment 对象的方法如下所示:Environment:terminateEnvironment(env);2.2. 连接与断开数据库连接数据库创建 完 一

4、 个 Environment 对象 env 后, 可以 调用 Environment 类下 的方 法 createCo nn ectio n()来创建一个 Conn ection 对象 co nn ;通过 createCo nn ectio n()方法我们可以连 接到任意一个数据库中。连接数据库的具体方法如下所示:Connection *conn = env-createConnection(usename,password,connectionstring);参数说明:use name是登录数据库的用户名;password 是登录数据库用户的密码;connectstingr 是数据库的连接串

5、 (可选 )。断开数据库当对数据库操作完成之后, 我们必须断开程序与数据库的连接, 断开数据库的连接方法 与创建的方法一样来自 Environment 类下的 terminateConnection() 函数。方法如下所示:env-terminateConnection(conn);2.3. 创建与断开连接池创建连接池对于很多共享服务器或中间层应用程序而言,数据库的连接必须要能被许多线程所使 用,如果为每个线程都开一个数据库连接的话, 当数量一大效率会明显的降低, 所以我们通过创建连接池来处理这样的情况。创建完一个Environment对象env后,可以调用Environment 类 下 的

6、方 法 createConnectionPool() 来 创 建 一 个 Connection 对 象 connPool ; 通 过 createConnectionPool() 方法我们可以连接到任意一个数据库中。连接池创建的具体方法如下 所示:ConnectionPool *connPool = env-createConnectionPool(conststring&poolUseName,conststring&poolPassWord,conststring&connectstring,unsigned intminConn,unsigned int maxConn, unsigne

7、d int incrConn);参数说明:poolUseName 是连接池的用户名;poolPassWord 是连接数据库的密码;connectstring 是数据库连接串;minConn 是最小连接数;maxConn 是最大连接数;incrConn 是指所有已连接数处于繁忙中且小于最大连接数时,每次增加的连接 数。断开连接池当对数据库操作完成之后, 我们必须断开程序与数据库的连接, 断开数据库的连接方法 与创建的方法一样来自 Environment 类下的 terminateConnectPool() 函数。方法如下所示: env-terminateConnectPool(connPoll)

8、;2.4. 创建与终止 Statement 对象2.4.1. 创建 Statement 对象Statement 类包含了执行 SQL 语句的所有方法,是对数据库操作的具体实现。 Statement 对象stmt的创建是通过调用Connection类下的createStatement()函数实现,所以 Statement对象的创建必须是在Connection对象创建之后。createStatement()函数可以带参数或不带参数,如果带参数的话, 参数必须是一个 SQL 语句;如果没有带参数, 则在后面必须用 Statement 类下setSQL()函数为Statement对象赋一个 SQL语句

9、。Statement对象的创建方法如下所示:Statement *stmt = conn-createStatement();终止 Statement 对象当对数据库的操作完成时,我们必须先终止 Statement 对象,再断开 Connection 对象。 终止 Statement 对象的方法如下所示:Conn-terminateStatement(stmt);3. 执行 SQL 语句( Statement 类)3.1. 执行 SQL 语句的方法执行SQL的所有方法都包含在 Statement类下。SQL语句按返回结果分,可以分为两种: 一种是有返回值的(查询语句) ,另外一种是没有返回值的

10、(非查询语句) 。一般情况下,在 执行查询 SQL 语句我们使用 executeQurey() 函数,在执行非查询 SQL 语句时我们使用 executeUpdate()函数。1 stmt-execute(); 执行所有非特殊声明的SQL 语句。2 stmt-executeUpdate(); 执行所有 DDL 和 DML (一条记录)的 SQL 语句。3 stmt-executeQurey(); 执行所有查询 SQL 语句。4 stmt-executeArrayUpdate(); 执行多记录的 DML 的 SQL 语句。 例如:stmt-executeUpdate(“create table

11、student (sno number(10),sname varchar2)”); stmt-executeUpdate(“insert into student (sno,sname) values(1,ZHANGSAN )”); stmt-executeQurey( “select sno from student ”);3.2. 执行非查询语句当我们创建了一个 Statement对象stmt后,可以通过 Statement类下的方法 setSQL()为 stmt 设置不同的 SQL 语句。3.2.1. 准备 SQL 语句stmt-setSQL(string &sql) ;例如:stmt

12、-setSQL( “insert into student (sno,sname) values(:1,:2) ”)其中: :1、 :2 是参数,通过给参数赋不同的值来实现。与之对应的函数 getSQL()是取出当前对象对应的SQL语句。3.2.2. 绑定输入参数值setx xx (unsigned intSQL 语句中的第几个参在 Statement 类中包含了所有参数的赋值方法,赋值方法 param in dex,type values),其中 param in dex参数是代表所赋值参数在 数,xxx与type代表中所赋值的类型,values是所赋的值。xxx可以是Int、String、

13、Date等等。 例如:stmt-setString(1, hangsan);指把hangsan赋值给第一个参数,参数类型为字符串型。stmt-setInt(2,1009); 指把 1009赋值给第二个参数,参数类型为整型。3.2.3. 执行非查询语句当 SQL 语句准备好后,就可以执行 SQL 语句了,方法如下所示:stmt-executeUpdate();3.3. 执行查询语句( SELECT )在执行查询语句时有返回查询结果(可能是一条,也可能是多条) ,我们必须创建一个ResultSet对象来处理,通过使用ResultSet对象的next()方法我们可以一条一条(或批量)地处理结果集。具

14、体使用如下所示:3.3.1. 准备 SQL 语句详见 3.2.1。3.3.2. 绑定输入参数值详见 3.2.2。3.3.3. 执行查询语句ResultSet *rs = stmt-executeQuery();3.3.4. 定义输出变量根据 SELECT 语句查询的列的类型定义对应的变量,此变量用于存储 SELECT 查询的 结果集。3.3.5. 推进或处理数据如果结果集为多条记录,我们可以批量或者一条条处理数据,使用 ResultSet 类下的方 法 next(unsigned int numRows) 。在Statement类中包含了所有参数的取值方法。取值方法get xxx( unsig

15、ned intparamindex),其中paramindex参数是代表所取值列在SQL语句中的第几列,xxx代表该列对应的类型可以是Int、String、Date等等。例如:rs-next(unsigned int numRows);/ 其中 numRows 为批量处理的记录行数。stmt-getInt(paramindex); 获取整型参数值 ,其中 paramindex 为参数所在的位置; stmt-getString(paramindex); 获取字符型参数值其中 paramindex 为参数所在的位置;3.4. 输出参数声明在调用存储过程时, 有时候有返回参数, 这些返回参数都必须在调用之前先用 Statement 类下的registerOutParam()方法声明,声明方法的使用如下所示:stmt-registerOutParam(paramName,paramType,paramSize);其中: paramName 是参数名或者参数所在位置;paramType是参数类型(比如:TYPE:OCCIINT );

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号