Center项目创建——数据初始化(Linux/Windows版本)
本博客主要讲述Center的模块安装配置和数据初始化
1、定义安装Install函数,IP地址由makefile自动传入,也就是用户自动传入
bool Install(std::string ip);
2、编写Install函数
#define CENTER_CONF "ip
bool XCenter::Install(std::string ip)
{//1、生成配置文件,数据库的IP//ofstream默认输出ofstream of;of.open(CENTER_CONF);if (!of.is_open()){cout << "open config" << CENTER_CONF << "failed!" << endl;return false;}//写入,将ip写入到流当中of << ip;of.close();cout << "XCenter::Install! "<<ip << endl;return true;
}
3、初始化数据库Init函数
//初始化数据库bool Init();
4、编写Init函数
bool XCenter::Init()
{//只能调用一次,直接new一个my = new LXMysql();string ip = "";//读取数据库ip配置ifstream fs;fs.open(CENTER_CONF);if (!fs.is_open()){//配置项不存在cout << "Please install center" << endl;return false;}fs >> ip;fs.close();if (ip.empty()){cout << "ip is empty! Please install center" << endl;return false;}cout << "Init center" << ip << endl;if (!my->Connect(ip.c_str(), "fdd", "990107Wjl@", "test_fdd")){cerr << "db Connect failed!" << endl;return false;}cout << "db Connect success!" << endl;return my->Query("set names utf8");
}
5、将Init放进Install函数里面,Install函数的最终定义为
bool XCenter::Install(std::string ip)
{//1、生成配置文件,数据库的IP//ofstream默认输出ofstream of;of.open(CENTER_CONF);if (!of.is_open()){cout << "open config" << CENTER_CONF << "failed!" << endl;return false;}//写入,将ip写入到流当中of << ip;of.close();//2、初始化表格数据//2.1、先连接上数据库if (!Init()){cerr << "Init failed!" << endl;return false;}cout << "XCenter::Install! "<<ip << endl;return true;
}
完整代码:
XCenter.h
#ifndef XCENTER_H
#define XCENTER_H
#include<string>
#include"LXMysql.h"
class XCenter
{
public:static XCenter* Get(){//不考虑线程安全static XCenter a;return &a;}bool Install(std::string ip);//初始化数据库bool Init();~XCenter();
private:XCenter();LX::LXMysql* my = 0;
};#endif // !XCENTER_H
XCenter.cpp
#include "XCenter.h"
#include<iostream>
#include<fstream>
#define CENTER_CONF "ip"
using namespace std;
using namespace LX;bool XCenter::Install(std::string ip)
{//1、生成配置文件,数据库的IP//ofstream默认输出ofstream of;of.open(CENTER_CONF);if (!of.is_open()){cout << "open config" << CENTER_CONF << "failed!" << endl;return false;}//写入,将ip写入到流当中of << ip;of.close();//2、初始化表格数据//2.1、先连接上数据库if (!Init()){cerr << "Init failed!" << endl;return false;}cout << "XCenter::Install! "<<ip << endl;return true;
}bool XCenter::Init()
{//只能调用一次,直接new一个my = new LXMysql();string ip = "";//读取数据库ip配置ifstream fs;fs.open(CENTER_CONF);if (!fs.is_open()){//配置项不存在cout << "Please install center" << endl;return false;}fs >> ip;fs.close();if (ip.empty()){cout << "ip is empty! Please install center" << endl;return false;}cout << "Init center" << ip << endl;if (!my->Connect(ip.c_str(), "fdd", "990107Wjl@", "test_fdd")){cerr << "db Connect failed!" << endl;return false;}cout << "db Connect success!" << endl;return my->Query("set names utf8");
}XCenter::XCenter()
{}XCenter::~XCenter()
{}
Center.cpp
#include <iostream>
#include<string>
#include"XCenter.h"
using namespace std;
//做一个系统的说明,使用说明
void Usage()
{cout << "=====================Center Usage" << endl;cout << "./center install 127.0.0.1" << endl;
}
int main(int argc,char*argv[])
{//argc参数的数量string cmd;//安装系统if (argc > 1){cmd = argv[1];}if (cmd == "install"){cout << "Begin install center!" << endl;//argv[1]第一个参数install,第二个argv[2]是ip//用户可能只是输入了install而没有输入ip,做一个判断if (argc < 3){Usage();return 0;//在makefile里面-1可能认为出错,还是return 0}XCenter::Get()->Install(argv[2]);}std::cout << "Hello World!\n";return 0;
}
makefile
center:Center.cpp XCenter.cpp XCenter.h#-lLXMysql动态链接库,对应的是libLXMysql.sog++ $^ -o $@ -I ../../LXMysql/LXMysql -lLXMysql./$@ install (你的IP)clean:rm -rf *.orm -rf center
相关文章:
Center项目创建——数据初始化(Linux/Windows版本)
本博客主要讲述Center的模块安装配置和数据初始化 1、定义安装Install函数,IP地址由makefile自动传入,也就是用户自动传入 bool Install(std::string ip); 2、编写Install函数 #define CENTER_CONF "ip bool XCenter::Install(std::string ip)…...

保送阿里云的云原生学习路线
近期好多人都有咨询学习云原生有什么资料。与其说提供资料不如先说一说应该如何学习云原生。 Linux基础知识:云原生技术通常在Linux环境中运行,因此建议首先掌握Linux的基础知识,包括命令行操作、文件系统、权限管理等。 容器化技术&#x…...

【昕宝爸爸小模块】深入浅出之JDK21 中的虚拟线程到底是怎么回事(二)
➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你👍点赞、🗂️收藏、加❤️关注哦。 本文章CSDN首发,欢迎转载,要注明出处哦! 先感谢优秀的你能认真的看完本文&…...

两周掌握Vue3(三):全局组件、局部组件、Props
文章目录 一、全局组件1.创建全局组件2.在main.js中注册全局组件3.使用全局组件 二、局部组件1.创建局部组件2.在另一个组件中注册、使用局部组件 三、Props1.定义一个子组件2.定义一个父组件3.效果 代码仓库:跳转 本博客对应分支:03 一、全局组件 Vue…...
Web前端篇——element-plus组件设置全局中文
背景:在使用el-date-picker组件时,发现组件中的文字默认都是英文。 设置全局中文的方法如下:(本文只介绍CDN方式) <script src"//unpkg.com/element-plus/dist/locale/zh-cn"></script> <s…...

【iOS】数据存储方式总结(持久化)沙盒结构
在iOS开发中,我们经常性地需要存储一些状态和数据,比如用户对于App的相关设置、需要在本地缓存的数据等等,本篇文章将介绍六个主要的数据存储方式 iOS中数据存储方式(数据持久化) 根据要存储的数据大小、存储数据以及…...

硬盘重新分区怎么恢复分区之前的文件?
分区是常见的故障,通常由多种原因引起。一方面,硬盘老化或者受到损坏可能会导致分区表出现问题;另一方面,用户误操作,如格式化或分区不当,也可能导致分区丢失。针对此问题,解决方法包括使用专业…...

C++每日一练(15):简单幂计算
题目描述 输入两个数a和b,求a的b次方。 输入 输入两个整数a,b(1<a<10,1<b<15)。 输出 输出一个正整数,该值<1000000000000。 输入样例 3 3 输出样例 27 参考答案 #include<bits/stdc.h&…...

扫雷游戏【可展开一片,超详细,保姆级别,此一篇足够】
一、C语言代码实现的扫雷游戏的运行 C语言实现扫雷 二、扫雷游戏的分析与设计 1.扫雷游戏的界面设计 在玩家玩扫雷的时候,它会给你一个二维的棋盘(下面的讲解都以9x9规格为例子),然后点击你想排查的坐标,若不是雷的&…...

鸿蒙开发-DevEco Studio Profiler工具进行帧率分析
Frame Profiler概述 DevEco Studio内置Profiler分析调优工具,其中Frame分析调优功能,用于录制GPU数据信息,录制完成展开之后的子泳道对应录制过程中各个进程的帧数据,主要用于深度分析应用或服务卡顿丢帧的原因。此外,…...

Google推出Telecom Jetpack库,让Android通话应用创建更简单
Google推出Telecom Jetpack库,让Android通话应用创建更简单 Telecom Jetpack库的最新Alpha版本已经推出。该库提供了多个API,以简化Android开发者创建语音和/或视频通话应用程序的过程,支持常见功能,例如接听/拒绝、音频路由等等…...

倒计时1天|解锁「PolarDB开发者大会」正确打开方式
1月17日 9:30-16:30 北京嘉瑞文化中心 PolarDB开发者大会 明天就要和大家就见面啦~ 大会参会指南现已出炉 各位开发者们,请查收~ 👇👇👇 点击 大会主页 or 扫描上方二维码 一键抵达大会官网👇 查看…...
链表-两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 // 递归版本 class Solution {public ListNode swapPairs(ListNode head) {// base case 退出提交if(head nu…...

vue下载文件流效果demo(整理)
在 Vue 项目中,你可以使用 FileSaver.js 库来方便地下载文件流。FileSaver.js 封装了不同浏览器的下载方式,使得下载文件更加简单和兼容。以下是一个完整的示例方法: 首先,安装 FileSaver.js 库: <template>&l…...

【从0上手cornerstone3D】如何渲染一个基础的Dicom文件(含演示)
一、Cornerstone3D 是什么? Cornerstone3D官网:https://www.cornerstonejs.org/ 在线查看显示效果(加载需时间,可先点击运行),欢迎fork 二、代码示例 了解了Cornerstone是什么,有什么作用后&…...
Unity3D PVP游戏位置同步算法优化详解
在Unity3D中,PVP(Player versus Player)游戏的位置同步是一项重要的技术,它决定了游戏中玩家之间的互动体验。本文将详细介绍Unity3D PVP游戏位置同步算法的优化方法,并给出相应的技术详解和代码实现。 对啦ÿ…...
【速成】蓝桥杯嵌入式省一教程
写在前面 蓝桥杯虽然是水赛,含金量不如其他老牌竞赛那么高,但对提高自身的能力还是有一定帮助的。无论你是想混个奖项加加综测分,还是想学学单片机、嵌入式的知识,蓝桥杯电子类的嵌入式竞赛都值得参加一次。当然蓝桥杯电子类竞赛…...
通过Lambda表达式获取字段列名,以及需要注意的地方
日常开发用MyBatis Plus的lambda表达式查询,不用手写column列名,不易出错且便于改动,如下: LambdaQueryWrapper<LanguageIntercept> lambdaQueryWrapper new LambdaQueryWrapper(); lambdaQueryWrapper.eq(LanguageInterc…...

消息队列的作用与使用场景?
一、消息队列的作用 队列的主要作用是消除高并发访问高峰,加快网站的响应速度。 在不使用消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情况下,会对数据库造成巨大的压力,同时也使得系统响应延迟加剧。 …...
前端常见面试题之ajax、http
文章目录 一、手写ajax请求1. get2. post3. xhr.readyState4. xhr.status5. xhr.open 二、跨域三、cookie、localStorage和sessionStorage四、http1. http常见的状态码有哪些2. http常见的header有哪些3. 什么是RestfulAPI4. 描述一下http的缓存机制5. https 一、手写ajax请求 …...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...