在 egg
项目中安装 egg-mysql
npm i egg-mysql --save
2、在{app_root}/config/plugin.js
中启用 egg-mysql
插件:
'use strict';
/** @type Egg.EggPlugin */
module.exports = {
//mysql
mysql:{
enable:true,
package:'egg-mysql',
}
};
3、在配置文件中配置 mysql
数据库连接地址 {app_root}/config/config.default.js
config.mysql={
//database configuration
client:{
//host
host:'localhost',
//port
port:'3306',
//username
user:'root',
//password
password:'123456',
//database
database:'test'
},
//load into app,default is open //加载到应用程序,默认为打开
app:true,
//load into agent,default is close //加载到代理中,默认值为“关闭”
agent:false,
};
二、egg-mysql 的命令查询
get 查找一条
let result = await this.app.mysql.get("user",{id:1})
查找数据的另一种方式
let result = await this.app.mysql.select("user",{
where:{id:1}
})
增加数据
let result = await this.app.mysql.insert("user",{username:"lisi",password:"1234"})
修改数据的第一种方式:根据主键修改
let result = await this.app.mysql.update('user',{ id:2, username:'赵四' });
//修改数据的第二种方式:通过 sql 来修改数据
let results=await this.app.mysql.query('update user set username = ? where id = ?',["王五",2]);
删除数据
let result= await this.app.mysql.delete('user',{ id:3 });
执行 sql
this.app.mysql.query(sql,values);
多表联查
let SQL=`select 主表名.参数` 附表.参数, from 主表名 left join 附表名 on 主表名.主表名.id=附表名.主表名id
let SQL=`select vote.voteId,vote.des,vote.title`,choose.content from vote left join choose on vote.voteId=choose.voteId
let result=await this.app.mysql.query(SQL)
return{
code:1,
msg:"成功"
}
mysql 事务
const conn=await this.app.mysql.beginTransaction();
try{
await conn.insert('user',{'username':'xiao1','password':'1111'});
await conn.update('user',{id:2,username:'黑子'});
await conn.commit(); //提交事务
}catch(err){
await conn.rollback();//回滚事务
throw err;
}