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

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函数&#xff0c;IP地址由makefile自动传入&#xff0c;也就是用户自动传入 bool Install(std::string ip); 2、编写Install函数 #define CENTER_CONF "ip bool XCenter::Install(std::string ip)…...

保送阿里云的云原生学习路线

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

【昕宝爸爸小模块】深入浅出之JDK21 中的虚拟线程到底是怎么回事(二)

➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你&#x1f44d;点赞、&#x1f5c2;️收藏、加❤️关注哦。 本文章CSDN首发&#xff0c;欢迎转载&#xff0c;要注明出处哦&#xff01; 先感谢优秀的你能认真的看完本文&…...

两周掌握Vue3(三):全局组件、局部组件、Props

文章目录 一、全局组件1.创建全局组件2.在main.js中注册全局组件3.使用全局组件 二、局部组件1.创建局部组件2.在另一个组件中注册、使用局部组件 三、Props1.定义一个子组件2.定义一个父组件3.效果 代码仓库&#xff1a;跳转 本博客对应分支&#xff1a;03 一、全局组件 Vue…...

Web前端篇——element-plus组件设置全局中文

背景&#xff1a;在使用el-date-picker组件时&#xff0c;发现组件中的文字默认都是英文。 设置全局中文的方法如下&#xff1a;&#xff08;本文只介绍CDN方式&#xff09; <script src"//unpkg.com/element-plus/dist/locale/zh-cn"></script> <s…...

【iOS】数据存储方式总结(持久化)沙盒结构

在iOS开发中&#xff0c;我们经常性地需要存储一些状态和数据&#xff0c;比如用户对于App的相关设置、需要在本地缓存的数据等等&#xff0c;本篇文章将介绍六个主要的数据存储方式 iOS中数据存储方式&#xff08;数据持久化&#xff09; 根据要存储的数据大小、存储数据以及…...

硬盘重新分区怎么恢复分区之前的文件?

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

C++每日一练(15):简单幂计算

题目描述 输入两个数a和b&#xff0c;求a的b次方。 输入 输入两个整数a&#xff0c;b&#xff08;1<a<10&#xff0c;1<b<15&#xff09;。 输出 输出一个正整数&#xff0c;该值<1000000000000。 输入样例 3 3 输出样例 27 参考答案 #include<bits/stdc.h&…...

扫雷游戏【可展开一片,超详细,保姆级别,此一篇足够】

一、C语言代码实现的扫雷游戏的运行 C语言实现扫雷 二、扫雷游戏的分析与设计 1.扫雷游戏的界面设计 在玩家玩扫雷的时候&#xff0c;它会给你一个二维的棋盘&#xff08;下面的讲解都以9x9规格为例子&#xff09;&#xff0c;然后点击你想排查的坐标&#xff0c;若不是雷的&…...

鸿蒙开发-DevEco Studio Profiler工具进行帧率分析

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

Google推出Telecom Jetpack库,让Android通话应用创建更简单

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

倒计时1天|解锁「PolarDB开发者大会」正确打开方式

1月17日 9:30-16:30 北京嘉瑞文化中心 PolarDB开发者大会 明天就要和大家就见面啦&#xff5e; 大会参会指南现已出炉 各位开发者们&#xff0c;请查收~ &#x1f447;&#x1f447;&#x1f447; 点击 大会主页 or 扫描上方二维码 一键抵达大会官网&#x1f447; 查看…...

链表-两两交换链表中的节点

给定一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后的链表。 你不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进行节点交换。 // 递归版本 class Solution {public ListNode swapPairs(ListNode head) {// base case 退出提交if(head nu…...

vue下载文件流效果demo(整理)

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

【从0上手cornerstone3D】如何渲染一个基础的Dicom文件(含演示)

一、Cornerstone3D 是什么&#xff1f; Cornerstone3D官网&#xff1a;https://www.cornerstonejs.org/ 在线查看显示效果&#xff08;加载需时间&#xff0c;可先点击运行&#xff09;&#xff0c;欢迎fork 二、代码示例 了解了Cornerstone是什么&#xff0c;有什么作用后&…...

Unity3D PVP游戏位置同步算法优化详解

在Unity3D中&#xff0c;PVP&#xff08;Player versus Player&#xff09;游戏的位置同步是一项重要的技术&#xff0c;它决定了游戏中玩家之间的互动体验。本文将详细介绍Unity3D PVP游戏位置同步算法的优化方法&#xff0c;并给出相应的技术详解和代码实现。 对啦&#xff…...

【速成】蓝桥杯嵌入式省一教程

写在前面 蓝桥杯虽然是水赛&#xff0c;含金量不如其他老牌竞赛那么高&#xff0c;但对提高自身的能力还是有一定帮助的。无论你是想混个奖项加加综测分&#xff0c;还是想学学单片机、嵌入式的知识&#xff0c;蓝桥杯电子类的嵌入式竞赛都值得参加一次。当然蓝桥杯电子类竞赛…...

通过Lambda表达式获取字段列名,以及需要注意的地方

日常开发用MyBatis Plus的lambda表达式查询&#xff0c;不用手写column列名&#xff0c;不易出错且便于改动&#xff0c;如下&#xff1a; LambdaQueryWrapper<LanguageIntercept> lambdaQueryWrapper new LambdaQueryWrapper(); lambdaQueryWrapper.eq(LanguageInterc…...

消息队列的作用与使用场景?

一、消息队列的作用 队列的主要作用是消除高并发访问高峰&#xff0c;加快网站的响应速度。 在不使用消息队列的情况下&#xff0c;用户的请求数据直接写入数据库&#xff0c;在高并发的情况下&#xff0c;会对数据库造成巨大的压力&#xff0c;同时也使得系统响应延迟加剧。 …...

前端常见面试题之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请求 …...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...