egg.js中使用egg-mysql操作mysql數據庫

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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章