egg结合mysql如何做数据返回_egg-mysql使用体验和笔记
体验
我以为会有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使用体验和笔记相关推荐
- java通过jdbc访问mysql,update数据返回值的思考
java通过jdbc访问mysql,update数据返回值的思考 先不说那么多,把Java代码贴出来吧. public static void main(String[] args) throws I ...
- 使用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 ...
- mysql 随机选择数据_从MySQL随机选取数据
从MySQL随机选取数据最简单的办法就是使用"ORDER BY RAND()"; 方案一: SELECT * FROM `table` ORDER BY RAND() LIMIT ...
- mysql随机不连续数据_用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串...
用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串 前言: RAND函数,返回在范围0到1.0内的随机浮点值.如果一个整数参数N被指定,它被用作种子值. 一,朋友问题描述如下 ...
- php连接mysql并查询表数据,php连接mysql并查询数据怎么实现
php连接mysql并查询数据怎么实现2020-11-08 13:33:21 php连接mysql并查询数据的实现方法:首先利用mysqli_connect函数与数据库建立连接:然后利用mysqli_ ...
- python读取mysql中表内数据_Python读取MySQL表数据的方法介绍
这篇文章主要为大家详细介绍了Python如何读取MySQL数据库表数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Python读取MySQL数据库表数据的具体代码,供大家参 ...
- mysql 禁止插入重复数据_防止MySQL重复插入数据的三种方法
新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 C ...
- python从mysql导出大量数据_python从mysql导出数据导excel
# coding:utf8 import sys reload(sys) sys.setdefaultencoding('utf8') # author: 'zkx' # date: '2018/3/ ...
- 用mysql触发器做数据统计
一 .具体实现 文件表: create table if not exists `file` ( `Name` varchar(255) NOT NULL, `Bucket` varchar(255) ...
最新文章
- 自然语言处理(NLP)之用深度学习实现命名实体识别(NER)
- check_mk通用应用检测插件
- 解密个性化资讯推荐技术
- strcpy会覆盖原来的吗_幽默你真的会了吗?原来可以这么简单
- libsvm 64 系统下编译问题
- arcgis api for javascript创建webscene
- 前端Javascript与Nodejs的异同
- 作业四:产品同质化问题
- Express 路由模块化以及 Express 应用程序生成器
- Android java传递int类型数组给C
- Android给ListView添加侧滑菜单功能
- oracle 查看主外键约束
- springboot maven父项目脚手架
- 详解动态代理及其实现原理
- php课程设计感想,设计心得体会
- 微信域名网址强制跳转至浏览器打开指定HTML网页
- 迪信通机器人_迪信通要做机器人:玩票还是另有深意?
- 用计算机亩换算成平方,亩换算平方(平方米换算亩计算器)
- 蘑菇街后台开发实习二面(视频面)
- Java学习第7篇_supper关键字
热门文章
- python周期函数的拟合_Python可以拟合函数(数学意义)吗?
- Vue分支循环结构~非常详细哦
- js时间格式化 YYYY/MM/DD HH:MM:SSS
- 【王道计组笔记】高速缓存器:局部性原理及性能分析
- 程序员怎样学习python_一个开发十年的程序员论:学习Python最正确的步骤(0基础必备)...
- C语言经典弱智问题解法整理
- java 键盘输入密码,(JAVA)从键盘输入一批字符,以@结束,按要求加密并输出
- android 腾讯 gt,源码解读腾讯 GT 的性能测试方案
- 第一章节 c#面向对象
- Problem D. Nothing is Impossible