在上一篇中我们完成了对Mysql数据库的准备工作之后,这一篇我们写一个程序测试一下。
1、Mysql API
在写程序之前,我们先学习一下Mysql数据库常用API的使用:
| API | 说明 | 
| mysql.connet(args) | 连接数据库,参数args是一个Lua表,包含数据库地址、用户名、密码等信息,会返回数据库对象,用于后续操作。 | 
| db:query(sql) | 执行SQL语句,db表示mysql.connet返回的对象,参数sql表示SQL语句。 | 
2、代码测试
        我们学完API之后,写个小程序测试数据库能否读写成功。
 
      (1)在
 skynet/examples目录下新建一个
 main_mysql.lua文件,如果之前有这个文件的话,直接覆盖即可,然后输入如下代码:
 
local skynet = require "skynet"
local mysql = require "skynet.db.mysql"
skynet.start(function()
    --连接数据库
    local db=mysql.connect({
        host="127.0.0.1",
        port=3306,
        database="skynet",
        user="root",
        password="root",
        max_packet_size = 1024 * 1024,
        on_connect = nil
    })
    --插入
    local res = db:query("insert into message (content) values(\'hello\')")
    --查询
    res = db:query("select * from message")
    --打印
    for i,v in pairs(res) do
        print ( i," ",v.id, " ",v.content)
    end
end)-  
  调用 mysql.connect 连接 MySQL ,并使用 skynet数据 库;
-  
  使用 db:query("insert ...") 向“message”表中插入一条数据,在“content”字段 插入字符串“hello”;
-  
  使用 db:query("select ...") 查询数据库,将结果保存到 res 中,遍历它并打印出来。
(2)在skynet/examples目录下新建一个config_mysql配置文件:
root = "./"
thread = 8
logger = nil
harbor = 0
start = "main_mysql"	-- main script
bootstrap = "snlua bootstrap"	-- The service for bootstrap
luaservice = root.."service/?.lua;"..root.."test/?.lua;"..root.."examples/?.lua"
lualoader = "lualib/loader.lua"
snax = root.."examples/?.lua;"..root.."test/?.lua"
cpath = root.."cservice/?.so"
-- daemon = "./skynet.pid"3、代码运行
打开终端输入指令:
- cd skynet
- ./skynet examples/config_mysql
运行结果如下图所示:

这里打印了两个hello是因为我之前已经测试了一次。
![责任链设计模式(Chain of Responsibility Pattern)[论点:概念、组成角色、图示、相关代码、框架中的运用、适用场景]](https://img-blog.csdnimg.cn/39f8d82ec1fa4c6b9a0663c1f5f84eff.png)










![[C++]类与对象下篇](https://img-blog.csdnimg.cn/637abf9e1f1244ee9a48e6055b1bf957.png)







