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

微博营销网站源码seo网络优化招聘信息

微博营销网站源码,seo网络优化招聘信息,网站开发与服务合同范本,网站开发建设价格附件数据管理模块实现 1.数据库表的设计2.数据管理模块的封装和实现2.1 user_table() && ~user_table()2.2 insert() 注册时新增用户2.3 login() 登录验证,并返回详细的用户信息2.4 通过用户名获取用户信息 && 通过用户id获取用户信息2.5 win() &&a…

数据管理模块实现

  • 1.数据库表的设计
  • 2.数据管理模块的封装和实现
    • 2.1 user_table() && ~user_table()
    • 2.2 insert() 注册时新增用户
    • 2.3 login() 登录验证,并返回详细的用户信息
    • 2.4 通过用户名获取用户信息 && 通过用户id获取用户信息
    • 2.5 win() && lose()

项目链接: 五子棋项目

1.数据库表的设计

在数据库表的成员变量中,除了id,用户名,密码之外,还有一些是是针对于游戏中的设计

  1. id
  2. username
  3. password
  4. score:分数
  5. total_count:总场数
  6. win_count:赢的场数
create database if not exists gobang;
use gobang;
create table if not exists user(id int primary key auto_increment,username varchar(32) not null,password varchar(32) not null,score int,total_count int,win_count int 
);

2.数据管理模块的封装和实现

实现一个mysql客户端来访问服务器进行数据的操作,为了项目的可拓展性,针对管理的每一张表都去设计一个类,我们这里是针对用户的数据所以设计的就是user类
在这里插入图片描述
这里的函数实现要搭配着上一篇文章实现的使用工具类中的mysql_util这个类。

2.1 user_table() && ~user_table()

user_table的初始化就是mysql_create()要传入的参数也是mysql_create这个函数所需要的参数,析构函数就直接调用mysql_destroy即可。

2.2 insert() 注册时新增用户

这里就是简单的使用sql语句即可,要对用户和密码不全的情况进行判断

     bool insert(Json::Value &user){
#define INSERT_USER "insert user values(null, '%s', '%s', 1000, 0, 0);"//密码用户不全if (user["password"].isNull() || user["username"].isNull()){DLOG("INPUT PASSWORD OR USERNAME");return false;}char sql[4096] = {0};// sprintf(void *buf, char *format, ...)sprintf(sql, INSERT_USER, user["username"].asCString(), user["password"].asCString());bool ret = mysql_util::mysql_exec(_mysql, sql);if (ret == false){DLOG("insert user info failed!!\n");return false;}return true;}

2.3 login() 登录验证,并返回详细的用户信息

mysql链接共享,所以在多个线程同时执行sql语句时会导致竞争,所以需要加锁保护,这里有一个新的写法在加锁的地方用括号括起来,这样就变成了一个区间,区间结束之后锁会自动释放。

          {std::unique_lock<std::mutex> lock(_mutex);bool ret = mysql_util::mysql_exec(_mysql, sql);if (ret == false){DLOG("user login failed!!\n");return false;}// 要么有数据,要么没有数据,就算有数据也只能有一条数据res = mysql_store_result(_mysql);if (res == NULL){DLOG("have no login user info!!");return false;}}

2.4 通过用户名获取用户信息 && 通过用户id获取用户信息

这两个的函数几乎一模一样,就是在sql查询语句中的查询条件不同

     bool select_by_name(const std::string &name, Json::Value &user){
#define USER_BY_NAME "select id, score, total_count, win_count from user where username='%s';"char sql[4096] = {0};sprintf(sql, USER_BY_NAME, name.c_str());MYSQL_RES *res = NULL;{std::unique_lock<std::mutex> lock(_mutex);bool ret = mysql_util::mysql_exec(_mysql, sql);if (ret == false){DLOG("get user by name failed!!\n");return false;}// 要么有数据,要么没有数据,就算有数据也只能有一条数据res = mysql_store_result(_mysql);if (res == NULL){DLOG("have no user info!!");return false;}}int row_num = mysql_num_rows(res);if (row_num != 1){DLOG("the user information queried is not unique!!");return false;}MYSQL_ROW row = mysql_fetch_row(res);user["id"] = (Json::UInt64)std::stol(row[0]);user["username"] = name;user["score"] = (Json::UInt64)std::stol(row[1]);user["total_count"] = std::stoi(row[2]);user["win_count"] = std::stoi(row[3]);mysql_free_result(res);return true;}

2.5 win() && lose()

这也类似,一个是加分一个是减分

  1. 胜利时天梯分数增加30分,战斗场次增加1,胜利场次增加1
  2. 失败时天梯分数减少30,战斗场次增加1,其他不变
     bool win(uint64_t id){
#define USER_WIN "update user set score=score+30, total_count=total_count+1, win_count=win_count+1 where id=%ld;"char sql[4096] = {0};sprintf(sql, USER_WIN, id);bool ret = mysql_util::mysql_exec(_mysql, sql);if (ret == false){DLOG("update win user info failed!!\n");return false;}return true;}
http://www.dtcms.com/wzjs/386168.html

相关文章:

  • 广州建站外包搜索引擎优化分析
  • 做视频链接网站今天的热点新闻
  • 做招聘网站赚钱么培训学校管理系统
  • b2b2c源码seo搜索引擎优化业务
  • 自己做的网站怎么备案站长号
  • 明星设计网站风格说明百度指数的功能
  • 手机网站排名优化软件各大免费推广网站
  • 如何设计网站首页百度服务电话6988
  • 毕设做网站的过程百度app官方下载安装
  • 衢州市住房建设局 网站百度推广公司怎么代理到的
  • wordpress 关键词 描述 插件seo与sem的区别
  • 重庆江北区网站建设公司中国营销传播网
  • 我有多个单页网站需要备案吗独立网站怎么做
  • 斯皮尔网站建设惠州网站排名提升
  • 网站图片管理系统免费的网络推广渠道
  • 站长之家的seo综合查询工具什么是精准营销
  • 企业馆设计公司seo查询在线
  • 外贸网站什么采集百度直接打开
  • wordpress评论不了商丘seo博客
  • 深圳做网站服务业务推广平台
  • 单一产品销售网站建设模板下载百度免费版
  • 国外网站制作有哪些google免费入口
  • 网站设计器seo如何建立优化网站
  • 政府网站制作费用互联网营销师考试题及答案
  • 做兼职网站设计2023新冠结束了吗
  • iis如何做网站管理器宁波网络营销公司
  • 杭州赛虎网站建设免费的云服务器有哪些
  • 为什么做独立站的人都不止一个网站个人推广平台
  • 国外免费域名注册平台seo需求
  • 微信小程序什么时候上线的seo推广网站