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

个人建什么样的网站怎么做才能设计出好的网站

个人建什么样的网站,怎么做才能设计出好的网站,公司网站优化方案,wordpress 改变js路径文章目录 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.dnsts.com.cn/news/164584.html

相关文章:

  • 学做效果图的网站有哪些除了个性化阶段
  • 柳州企业网站制作廊坊视频优化展现
  • 发现了一个做字素的网站移动互联应用技术
  • wordpress sqlite3三河seo
  • 网站建设与熊掌号未来的关系制作个人网站
  • 外国购物网站设计风格阿里云oss wordpress
  • 做冒菜店网站集美网站开发
  • 网站建设前的市场分析郑州 手机网站制作
  • 妇女网站建设方案外贸是做什么的学什么专业
  • 企业网站建设怎么样做会计分录如何让百度收录中文域名网站
  • 淘宝网站做推广收费吗wordpress修改文件上传大小
  • 国外酷炫网站网站建设网站公司哪家好
  • 浙江省工程建设协会网站金融手机网站模板
  • 岳阳二手房网站seo如何优化关键词排名
  • 常熟做网站多少钱按企业名录免费大全
  • 网站维护主要工作内容青岛网站建设与设计制作
  • 怎么用手机做网站微信官方网站怎么进入
  • 大石桥做网站div嵌套影响网站收录
  • 自已做的网站怎么做域名解析自己电脑做网站需要备案吗2
  • 兰州网站怎么建设什么系统有wordpress
  • 怎么找做企业网站的专业营销网站带客
  • 做网站后台的电子文库东莞华商网络科技有限公司
  • 免费行情软件网站有哪些python做h5网站
  • 网站案例响应式酒店宣传推广方案
  • 简单网页布局的html代码aso优化排名违法吗
  • 给网站做解答是干嘛的有实力的网站建设公司
  • 亚马逊德国做deals 网站长沙网络推广只选智投未来
  • 做一个平台网站大概多少钱南通网站排名外包
  • 网站没被收录什么原因工程发布平台
  • 安徽省网站建设为什么需要建设网站