开发日志 170414

前天和昨天折腾了好久阿里云的服务器,各种用的不爽,最后还是强行给装了大蜥蜴42.2。今天主要折腾了一下数据库的初始化,以及尝试通过MySQL Connector/C++连接到数据库上。

简单参考了这篇教程:http://blog.csdn.net/tiaotiaoyly/article/details/5174772

首先安装好nginx, php5-fpm, php5-mbstring, php5-mysql, mariadb这几个包,然后写好nginx配置文件,把phpMyAdmin开起来。然后装mariadb,启动之后运行mysql_secure_installation脚本,就可以在phpMyAdmin里访问了。当然,推荐把HTTPS也开起来,阿里云和腾讯云有免费证书可以申请,也不费事。

然后开始在本机搞事情,安装libmysqlcppconn-devel这个包,里面包含了连接MySQL所需要的库和头文件,boost的依赖似乎没写进去,还要手动安装一下boost_1_63-devel这个包。

我的数据库长这个样子,

MariaDB [test]> select * FROM Books;
+--------------------+-------+---------+-------+
| Name               | Price | ISBN    | Count |
+--------------------+-------+---------+-------+
| 自动日山原理       |  99.8 | 1213141 |   999 |
| 自动CI原理         |  97.2 |   12333 |     1 |
+--------------------+-------+---------+-------+
2 rows in set (0.04 sec)

然后写一段小程序:

#include <mysql_connection.h>
#include <mysql_driver.h>
#include <cppconn/statement.h>
using namespace sql;
using namespace std;

void RunConnectMySQL()
{
  mysql::MySQL_Driver *driver;
  Connection *con;
  Statement *state;
  ResultSet *result;
  // 初始化驱动
  driver = sql::mysql::get_mysql_driver_instance();
  // 建立链接
  con = driver->connect("tcp://ali.himmel.tech", "test", "nozomiDaisuki");
  state = con->createStatement();
  state->execute("use test");
  state -> execute("INSERT INTO Books (Name, ISBN, Price, Count) VALUES ('自动打Call原理' , 80211, 199.8, 2999)");
  // 查询
  result = state->executeQuery("select * from Books");
  // 输出查询
  while(result->next())
  {
    cout << result -> getString("Name") << " : $" << result -> getDouble("Price")  << endl;
  }
  state -> execute("DELETE FROM Books WHERE Name = '自动打Call原理'");
  delete state;
  delete con;
}

int main()
{
  RunConnectMySQL();
  return 0;
}

注意执行命令有三种,一种是只返回成功与否的execute,一种是返回改变行数的executeUpdate,以及返回一个查询列表的executeQuerry。

所以说,基本上还是用SQL语句,SQL不好好学学可不行……

/home/test/GP/sqltest/cmake-build-debug/sqltest
自动日山原理 : $99.8
自动CI原理 : $97.2
自动打Call原理 : $199.8

Process finished with exit code 0

然后这是返回值,下一步要设计一下数据库喽。

 

发表评论