当前位置: 首页 > news >正文

怎么做汽车网站推广方案怎样开自己的网络平台

怎么做汽车网站推广方案,怎样开自己的网络平台,创建私人网站,网优工程师前景和待遇文章目录 1 OCCI使用1.1 初始化 - Environment 类1.2 连接数据库 - Connection 类1.3 执行SQL 2 OCCI在项目中的使用2.1 OCCI单独封装为一个类文件OCCIOP2.2 在ServerOP中作为私有成员2.3 ServerOP::ServerOP(string json)中实例化进行使用2.4 秘钥协商过程中进行读写操作 1 OC… 文章目录 1 OCCI使用1.1 初始化 - Environment 类1.2 连接数据库 - Connection 类1.3 执行SQL 2 OCCI在项目中的使用2.1 OCCI单独封装为一个类文件OCCIOP2.2 在ServerOP中作为私有成员2.3 ServerOP::ServerOP(string json)中实例化进行使用2.4 秘钥协商过程中进行读写操作 1 OCCI使用 // 头文件 #include occi.h // occi的接口类在对应的命名空间中 using namespace oracle::occi;// 使用 1. 初始化一个环境-对应的类: Environment 2. 使用初始化完成的环境对象创建一个连接, 得到一个连接对象: Connection, 通过这个对象可用连接并操作服务器 3. 对数据库的操作: 添删查改(对应相关的sql语句)- 通过得到的连接数据库的实例对象, 创建一个可以对象数据进行sql操作的一个对象: Statement 4. 如果对数据进行是查询操作, 会得到一个结果集, 这个结果集对应的也是一个类: ResultSet 5. 释放资源- 结果集资源-ResultSet- 对数据进行sql操作的对象-Statement- 销毁连接对象-Connection- 数据连接环境-Environment1.1 初始化 - Environment 类 OCCI通过创建一个Environment的对象完成初始化工作。 可以通过Environment创建数据库连接从而进行其它的操作 要创建Environment应该调用Environment类的静态方法createEnvironment() // 环境初始化 Environment* env Environment::createEnvironment(); // 关闭, 释放资源 Environment::terminateEnvironment(env);1.2 连接数据库 - Connection 类 连接数据库通过Connection类的对象实例实现 调用Environment类的**createConnection()**方法可以创建一个Connection对象 // 函数原型: // 连接串格式: IP:端口/数据库实例名 Connection *Environment::createConnection( const string userName,const string password, const string connectString );// 函数调用 const string userName scott; // 用户名 const string passwd tiger; // 密码 const string connstr 192.168.247.129:1521/orcl; // 数据库连接串 Connection* conn env-createConnection(userName, passwd, connstr);使用**Environment::terminateConnection()**断开连接 // 断开连接 env-terminateConnection(conn);1.3 执行SQL Statement 类用于执行SQL语句,并获取返回结果。 ResultSet 类用于处理SELECT 查询的结果。 对于所有类型的数据的绑定或者获取OCCI都提供了统一的方法 setXXX 方法用于StatementgetXXX 方法用于Statement ResultSet OCCI会自动处理类型之间的转换。 使用方法 使用Connection:*createStatement()**创建Statement对象, 指定 SQL 命令(DDL/DML/query)作为参数 // 操作函数 Connection::createStatement(string sql);Statement::setSQL(string sql);Statement::execute(string sql); // can be used for any SQL, returns status // 执行一个insert/update/delete Statement::executeUpdate(string sql); // returns Insert/Update/Delete count // 执行一个select语句 Statement::executeQuery(string sql); // returns ResultSet结果集使用 setXXX 方法传递要绑定用于输入的值 使用合适的execute方法执行SQL 对于SELECT 查询, 使用ResultSet 对象处理返回结果 // 插入操作 Statement *stmt conn-createStatement(“ insert into Dept(Deptno,Dname, Loc) values (1, ‘ACCOUNTS’, ‘ZONE1’ ”); stmt-executeUpdate(); conn-terminateStatement(stmt); // 关闭查询, 释放资源使用绑定参数的DML数据操作语句示例 Statement *stmt conn-createStatement(“ insert into Emp(EmpNo,Ename) values(:1, :2) ”); //1 and 2 are bind placeholders int empno 2; string empname “JOHN W”; //first parameter is bind position, second is value stmt-setInt(1, empno); stmt-setString(2, empname); stmt-executeUpdate(); 执行SELECT查询并处理结果 Statement *stmt conn-createStatement(“select Empno, Ename, Sal from Emp where Hiredate :1”); //automatically converted to Date stmt-setString(1, “01-JAN-1987”); //executeQuery returns a ResultSet ResultSet *rs stmt-executeQuery(); //ResultSet::next fetches rows and returns FALSE //when no more rows while (rs-next() true) { //get values using the getXXX methods of ResultSet empno rs-getInt(1); empname rs-getString(2); empsalary rs-getFloat(3); } stmt-closeResultSet(rs);//to free resources 2 OCCI在项目中的使用 2.1 OCCI单独封装为一个类文件OCCIOP #pragma once #define _GLIBCXX_USE_CXX11_ABI 0 #include string #include occi.h #include SeckKeyNodeInfo.h using namespace std; using namespace oracle::occi;class OCCIOP { public:OCCIOP();~OCCIOP();// 初始化环境连接数据库bool connectDB(string user, string passwd, string connstr);// 得到keyID - 根据实际业务需求封装的小函数int getKeyID();bool updataKeyID(int keyID);bool writeSecKey(NodeSecKeyInfo *pNode);void closeDB();private:// 获取当前时间, 并格式化为字符串string getCurTime();private:Environment* m_env;Connection* m_conn; }; 2.2 在ServerOP中作为私有成员 #pragma once #include map #include TcpServer.h #include Message.pb.h #include OCCIOP.h #include SecKeyShm.h // 处理客户端请求 class ServerOP { public:enum KeyLen {Len1616, Len2424, Len3232};ServerOP(string json);void startServer();static void* working(void* arg);friend void* workHard(void* arg);string seckeyAgree(RequestMsg* reqMsg);~ServerOP();private:string getRandKey(KeyLen len);private:string m_serverID; string m_dbUser;string m_dbPwd;string m_dbConnStr;unsigned short m_port;mappthread_t, TcpSocket* m_list;TcpServer *m_server NULL;// 创建数据库实例对象因为在多处进行了使用因此设置为成员OCCIOP m_occi;SecKeyShm* m_shm; };2.3 ServerOP::ServerOP(string json)中实例化进行使用 ServerOP::ServerOP(string json) {// 解析json文件, 读文件 - Valueifstream ifs(json);Reader r;Value root;r.parse(ifs, root);m_port root[Port].asInt();m_serverID root[ServerID].asString();// 数据库相关的信息m_dbUser root[UserDB].asString();m_dbPwd root[PwdDB].asString();m_dbConnStr root[ConnStrDB].asString();// 实例化一个连接oracle数据的对象m_occi.connectDB(m_dbUser, m_dbPwd, m_dbConnStr);string shmKey root[ShmKey].asString();int maxNode root[ShmMaxNode].asInt();m_shm new SecKeyShm(shmKey, maxNode); }2.4 秘钥协商过程中进行读写操作 // 将生成的新秘钥写入到数据库中 - 操作 SECKEYINFO NodeSecKeyInfo node; strcpy(node.clientID, reqMsg-clientid().data()); strcpy(node.serverID, reqMsg-serverid().data()); strcpy(node.seckey, key.data());node.seckeyID m_occi.getKeyID(); // 秘钥的IDinfo.seckeyID node.seckeyID; node.status 1;// 初始化node变量 bool bl m_occi.writeSecKey(node);
http://www.zqtcl.cn/news/769785/

相关文章:

  • 白石桥做网站公司seo顾问服务四川
  • 网站建设注册哪类商标十大网页设计公司
  • 网站建设的源代码有什么作用金华网站建设优化技术
  • 个人网站申请做瞹瞹嗳视频网站在线观看
  • 做网站 融资玉石网站建设的定位
  • 自己做的网站字体变成方框seo同行网站
  • 宁波网站建设培训微信小程序开发平台官网
  • 西部数码做的网站打不开哈尔滨模板建站推荐
  • 外贸网站建设流程杭州软件定制开发
  • 网站的首页面设计软文推广特点
  • 网站描述在哪里写网页设计图片怎么换
  • 深圳网站关键词优化推广做mod游戏下载网站
  • 通达oa 做网站wordpress动转换标签别名
  • 三亚学做网站培训招聘网站排名
  • 企业网站建设费用需要多少钱怎样下载建设银行信用卡网站
  • 厦门建网站公司怎么做服装外贸网站
  • 做淘宝客网站用什么程序好仿站下载工具
  • 网站地图开发国家住房和城乡建设部中国建造师网站
  • 巫山网站建设泉州市培训建设系统中心网站
  • 网站开发国内外研究背景室内设计师收入高吗
  • 深圳网站维护一般多少钱沈阳做网站黑酷科技
  • 汽车营销服务网站建设怎样申请微信公众号个人
  • 阿里云 做网站北京工程建设交易中心网站
  • 网站备案安全承诺书竞价外包推广专业公司
  • 如何做公司网站广西住建厅八大员报名网站
  • 以下不是网站开发语言的哪项工信部域名备案管理系统
  • 优化网站搭建创业项目网站建设规划
  • 温岭网站开发网站建设程序文件
  • 有什么网站可以做深圳初二的试卷练习商城网站功能
  • 网站托管就业新闻今天的最新新闻