【从零开始学Skynet】基础篇(七):Mysql数据库常用API

        在上一篇中我们完成了对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是因为我之前已经测试了一次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/12494.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【敬伟ps教程】平移、缩放、移动、选区

文章目录 平移抓手工具旋转抓手 缩放工具移动工具详解选区选区工具详解 平移 抓手工具 当打开一张大图时,可以通过修改底部的百分比或使用抓手工具(H或在任何时候按住空格键来使用抓手工具)来查看更多细节 使用抓手工具时滚动所有打开的文…

仿真创新大赛—国三省一 智能鱼缸(proteus)(stm32)

⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩去年下半年参加了全国仿真创新大赛,也是取得了国赛三等奖,省赛一等奖的好成绩。 ⏩本篇文章对我们的参赛作品《智能鱼缸》做一个简介。 ⏩感…

【前缀和】

目录 知识框架No.0 筑基No.1一维前缀和No.2 二维前缀和题目来源:Acwing-796. 子矩阵的和 No.1 普通前缀和题目来源:牛客网-NC14556:数圈圈题目来源:牛客网-NC14600:珂朵莉与宇宙题目来源:牛客网-NC21195 &a…

优化 Kafka 的生产者和消费者

背景 如今,分布式架构已经成为事实上的架构模范,这使得通过 REST API 和 消息中间件来降低微服务之间的耦合变得必然。就消息中间件而言,Apache Kafka 已经普遍存在于如今的分布式系统中。Apache Kafka 是一个强大的、分布式的、备份的消息服…

matplotlib的配色(随机颜色函数,各种渐变色,彩虹色)

也是画图的时候经常会遇到的问题,什么颜色好看? 先直接上一个配色表: plt官网:List of named colors — Matplotlib 3.8.0.dev898g4f5b5741ce documentation 需要什么颜色传入就行了。 例如我下面画一个柱状图,自己选…

云擎未来,智信天下 | 2023移动云大会来了!

新三年,新征程 2023年作为新三年开局之年 移动云又将以怎样的 全新品牌形象、全新战略规划 向“一流云服务商”战略目标勇毅前行? 答案就在这里: 2023移动云大会,官宣定档! 2023.4.25 - 4.26 苏州金鸡湖国际会…

Android 中的混音器 AudioMixer 实现分析

Android framework 的音频处理模库 libaudioprocessing (位于 frameworks/av/media/libaudioprocessing) 提供了混音器组件 AudioMixer,它主要用在 audioflinger 里,用来将多路音频源数据混音,以方便送进音频设备播放出来。 音频混音操作本身…

8.2 正态总体的参数的检验

学习目标: 如果我要学习正态总数的参数检验,我会按照以下步骤进行学习: 学习正态分布的基本知识:正态分布是统计学中非常重要的概率分布之一,掌握其基本知识包括概率密度函数、期望值、方差、标准差等是非常重要的。 …

最佳实践:Android应用中的网络请求和数据缓存

最佳实践:Android应用中的网络请求和数据缓存 网络请求在Android应用中的重要性 在现代移动应用中,网络请求扮演着重要的角色,涉及到数据的获取、上传、更新等功能。网络请求在Android应用中具有关键地位,对于提供优秀的用户体验和…

IDEA配置MAVEN_OPTS

IDEA配置MAVEN_OPTS​ 解决问题 maven MAVEN_OPTS设置 maven编译优化 maven编译速度慢 maven打包编译很慢 maven多线程编译打包 IDEA Maven配置教程​​测试环境:Win10(64位) i7-7700HQ 16GB​​ 参考文章: ​​ ​JVM参数MetaspaceSize的误解​​ Java HotSpot™ 64-Bit Ser…

数字化转型迫在眉睫!药企如何应用AI技术加速创新?

导语 | 近年来,随着 AI 等技术的发展应用,数字化、智能化日渐成为各行各业转型升级的新兴力量,其与医药产业的融合创新也逐渐成为当前的新趋势,众多医药制造企业蓄势待发,搭乘数字化的快车,驶入高速发展的快…

[计算机图形学]几何:网格处理(前瞻预习/复习回顾)

一、前言 网格的三种处理:网格细分,网格简化,网格正则化,细分会产生更多的三角面片来让模型更加光滑,简化则相反会减少网格的三角面片数量,正则化则会让三角形面更加规则。如上图中最右边两幅图&#xff0…

理解C语言中的空指针和野指针

在C语言中,指针是一个非常重要的概念,可以用于操作变量和数据结构。但是,指针也是很容易出错的地方。其中包括两种可能的错误:空指针和野指针。 空指针 空指针指代无效的地址,表示指针不指向内存中的任何一个合法对象…

浏览器便携化操作方法

直接进入主题 如果我们不想把 Chrome 安装进 C 盘,又或者想测试多配置,那么浏览器的便携化就非常重要了。 浏览器便携化的方法有很多,国内常用的有两种。 1、MyChrome MyChrome 最早由网友“甲壳虫”开发,除了浏览器便携化&a…

camunda如何启动一个流程

在 Camunda 中启动一个流程需要使用 Camunda 提供的 API 或者用户界面进行操作。以下是两种常用的启动流程的方式: 1、通过 Camunda 任务列表启动流程:在 Camunda 任务列表中,可以看到已经部署的流程,并可以点击“Start”按钮&am…

【微服务】6、一篇文章学会使用 SpringCloud 的网关

目录 一、网关作用二、网关的技术实现三、简单使用四、predicates(1) 网关路由可配置的内容(2) 路由断言工厂(Route Predicate Factory) 五、filters(1) GatewayFilter(2) 给全部进入 userservice 的请求添加请求头(3) 全局过滤器 —— GlobalFilter(4) …

如何在矩池云上部署 Carla,模拟自动驾驶

简介 Carla 是一款基于 Python 编写和 UE(虚幻引擎)的开源仿真器,用于模拟自动驾驶车辆在不同场景下的行为和决策。它提供了高度可定制和可扩展的驾驶环境,包括城市、高速公路和农村道路等。Carla 还提供了丰富的 API 和工具&…

LeetCode算法小抄 -- 环检测算法 和 拓扑排序算法

LeetCode算法小抄 -- 环检测算法 和 拓扑排序算法 环检测算法(DFS)[207. 课程表](https://leetcode.cn/problems/course-schedule/) 拓扑排序算法(DFS)[210. 课程表 II](https://leetcode.cn/problems/course-schedule-ii/) 环检测算法(BFS)拓扑排序算法(BFS) ⚠申明&#xff1…

Python Web开发技巧II

Postman安置Cookie 对于大型项目而已,所携带的cookie往往都不止一个,而是一堆,甚至特别特别长,postman文档提供的cookie操作是全局的,但需要一个一个打(折磨),唯一的优点就是作用域…

3.7 曲率

学习目标: 如果我要学习高等数学中的曲率,我会遵循以下步骤: 1.熟悉相关的数学概念:在学习曲率之前,我们需要了解曲线、切线和曲率半径等相关的数学概念。因此,我会复习这些概念,以便更好地理…