体验

我以为会有laravel那种ORM支持呢,看来是想多了,不过官方提供了一个egg-sequelize插件,还是很不错的,下面是egg-mysql的学习笔记

安装

需要使用egg提供的一个egg-mysql插件来进行数据库交互,所以

首先安装egg-mysql npm包,执行命令:

$ npm i --save egg-mysql

然后在项目插件配置文件中开启插件

// config/plugin.jsexports.mysql = {

enable: true,// 开启 package: 'egg-mysql', // 对应哪个包};

配置

接下来就需要配置数据库账号等信息了,egg提供一种多环境配置,就是咱即可以配置自己本地的数据库信息,也可以配置测试环境、线上环境数据库信息,只需要再config下创建config.${env}.js文件即可,比如config.location.js为我本地配置,config.prod.js为线上环境,然后在config/env文件内指定运行环境即可。

当然也可以默认都用一个配置。我用config/config.default.js来作为默认配置文件。

// mysqlconfig.mysql = {

client: {

// host host: 'localhost',

// 端口号 port: '3306',

// 用户名 user: 'root',

// 密码 password: 'root',

// 数据库名 database: 'test',

},

// 是否加载到 app 上,默认开启 app: true,

// 是否加载到 agent 上,默认关闭 agent: false,

}

使用

如何在项目中增删改查呢?你可以直接在controller里边直接这样用,不过建议自己写一个service来过度下业务

get 查询单条信息

let user = await this.app.mysql.get('users', { id: 1 });

2. select 查询多条数据

let users= await this.app.mysql.select('users');

3. select 有条件的查询,蛋疼的是,他的条件只支持=和in,真鸡儿,想自定义还需要用query

let users = await this.app.mysql.select('users', {

where: {

name: ['test', 'test1'], // 相当于 in },

order: [['created_at', 'desc'], ['state', 'desc']]

});

4. query 直接执行sql语句,为了防止sql注入,采用这种每个?匹配一个元素的方式

let users = await this.app.mysql.query('select * from users where id > ? and state <> ? and phone is not null', [100, 0]);

5. insert 插入数据

let res = await this.app.mysql.insert('users', {

name: 'egg',

phone: 'xxxxxx'

});

let id = res.insertId; // 得到新插入的数据主键

6. update 更新数据

// 更新id=1的用户信息let res = await this.app.mysql.update('users', {

name: 'egg',

phone: 'xxxxxx'

}, {

id: 1,

});

7. delete 删除数据

let res = await this.app.mysql.delete('users', {

id: 1,

});

egg结合mysql如何做数据返回_egg-mysql使用体验和笔记相关推荐

  1. java通过jdbc访问mysql,update数据返回值的思考

    java通过jdbc访问mysql,update数据返回值的思考 先不说那么多,把Java代码贴出来吧. public static void main(String[] args) throws I ...

  2. 使用DataX将mysql中做数据导出时 提示 java.sql.SQLException: Could not retrieve transation read-only status server

    原因是我的数据库是8.0以上版本,但是datax本身提供的jar包是5.1版本,将datax/plugins目录下的reader/writer中的mysqlreader/mysqlwriter的lib ...

  3. mysql 随机选择数据_从MySQL随机选取数据

    从MySQL随机选取数据最简单的办法就是使用"ORDER BY RAND()"; 方案一: SELECT * FROM `table` ORDER BY RAND() LIMIT  ...

  4. mysql随机不连续数据_用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串...

    用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串 前言: RAND函数,返回在范围0到1.0内的随机浮点值.如果一个整数参数N被指定,它被用作种子值. 一,朋友问题描述如下 ...

  5. php连接mysql并查询表数据,php连接mysql并查询数据怎么实现

    php连接mysql并查询数据怎么实现2020-11-08 13:33:21 php连接mysql并查询数据的实现方法:首先利用mysqli_connect函数与数据库建立连接:然后利用mysqli_ ...

  6. python读取mysql中表内数据_Python读取MySQL表数据的方法介绍

    这篇文章主要为大家详细介绍了Python如何读取MySQL数据库表数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Python读取MySQL数据库表数据的具体代码,供大家参 ...

  7. mysql 禁止插入重复数据_防止MySQL重复插入数据的三种方法

    新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 C ...

  8. python从mysql导出大量数据_python从mysql导出数据导excel

    # coding:utf8 import sys reload(sys) sys.setdefaultencoding('utf8') # author: 'zkx' # date: '2018/3/ ...

  9. 用mysql触发器做数据统计

    一 .具体实现 文件表: create table if not exists `file` ( `Name` varchar(255) NOT NULL, `Bucket` varchar(255) ...

最新文章

  1. 自然语言处理(NLP)之用深度学习实现命名实体识别(NER)
  2. check_mk通用应用检测插件
  3. 解密个性化资讯推荐技术
  4. strcpy会覆盖原来的吗_幽默你真的会了吗?原来可以这么简单
  5. libsvm 64 系统下编译问题
  6. arcgis api for javascript创建webscene
  7. 前端Javascript与Nodejs的异同
  8. 作业四:产品同质化问题
  9. Express 路由模块化以及 Express 应用程序生成器
  10. Android java传递int类型数组给C
  11. Android给ListView添加侧滑菜单功能
  12. oracle 查看主外键约束
  13. springboot maven父项目脚手架
  14. 详解动态代理及其实现原理
  15. php课程设计感想,设计心得体会
  16. 微信域名网址强制跳转至浏览器打开指定HTML网页
  17. 迪信通机器人_迪信通要做机器人:玩票还是另有深意?
  18. 用计算机亩换算成平方,亩换算平方(平方米换算亩计算器)
  19. 蘑菇街后台开发实习二面(视频面)
  20. Java学习第7篇_supper关键字

热门文章

  1. python周期函数的拟合_Python可以拟合函数(数学意义)吗?
  2. Vue分支循环结构~非常详细哦
  3. js时间格式化 YYYY/MM/DD HH:MM:SSS
  4. 【王道计组笔记】高速缓存器:局部性原理及性能分析
  5. 程序员怎样学习python_一个开发十年的程序员论:学习Python最正确的步骤(0基础必备)...
  6. C语言经典弱智问题解法整理
  7. java 键盘输入密码,(JAVA)从键盘输入一批字符,以@结束,按要求加密并输出
  8. android 腾讯 gt,源码解读腾讯 GT 的性能测试方案
  9. 第一章节 c#面向对象
  10. Problem D. Nothing is Impossible