zoukankan      html  css  js  c++  java
  • midway mysql egg-mysql 配置 基础操作 增删改查

    egg-mysql:GITHUB传送门

    一、配置
    安装egg-mysql

    npm install egg-mysql -S


    在src/config/plugin.ts添加配置代码如下

    export default {
    ……
    mysql: {
    enable: true,
    package: 'egg-mysql',
    }
    ……
    } as EggPlugin;

    在src/config/config.default.ts添加配置代码如下

    import { EggAppConfig, EggAppInfo, PowerPartial } from 'midway';
    export type DefaultConfig = PowerPartial<EggAppConfig>
    
    export default (appInfo: EggAppInfo) => {
    const config = <DefaultConfig> {};
    ……
    config.mysql = {
    // database configuration
    client: {
    // host
    host: '127.0.0.1',
    // port
    port: '3306',
    // username
    user: 'root',
    // password
    password: '123456',
    // database
    database: 'yoye',
    },
    //load into app,default is open //加载到应用程序,默认为打开
    app:true,
    //load into agent,default is close //加载到代理中,默认值为“关闭”
    agent:false,
    }
    
    ……
    return config;
    };

    二、创建测试数据
    在这里我们的mysql里是存在名为yoye的数据库,并且通过sql语句新建了test表,且存在一个name字段,新建数据库并初始化测试表SQL语句如下:

    创建数据库,且编码为utf8

    CREATE DATABASE `yoye` CHARACTER SET utf8 COLLATE utf8_general_ci;

    1
    创建数据表,且存在自增主键id、字符串字段name

    create table test(
    id int not null auto_increment primary key,
    name varchar(100) not null
    );

    向表中新增一条测试数据

    insert into test (name) values('yoye');

    1
    三、注入
    在controller中注入,代码如下

    import { get, post } from 'midway';
    import { Context, controller, inject, provide, plugin } from 'midway';
    
    @provide()
    @controller('/auth')
    export class AuthController {
    ……
    @plugin()
    mysql;
    ……
    }

    接下来就可以通过this.mysql愉快的使用了

    四、基础操作
    条件查询,方法一

    const result = await this.mysql.get("test", { id: 1 })
    if (result != null) {
    console.log(result.name);
    }

    条件查询,方法二

    const result = await this.mysql.select("test", {
    where: {
    name: ['yoye', 'test'], // 相当于 in
    },
    order: [['id', 'desc'], ['name', 'desc']]
    })
    if (result.length) {
    console.log(result[0].name);
    }

    新增

    const result = await this.mysql.insert("test", { name: "lisa" })


    1
    修改,方法一

    const result = await this.mysql.update('test', { id: 2, name: 'ella' });
    console.log(result);

    修改,方法二

    const result = await this.mysql.query('update test set name = ? where id = ?', ["yooyea", 2]);
    console.log(result);

    删除

    let result = await this.mysql.delete('test', { id: 2 });
    console.log(result);

    执行原生SQL

    const sql = 'select * from test limit ?'
    const values = [10]
    this.mysql.query(sql, values).then((res:any)=>{
    console.log(res);
    })



    Mysql事务

    const conn = await this.mysql.beginTransaction();
    try {
    await conn.insert('test', { 'name': 'lisa' });
    await conn.update('test', { id: 2, name: 'ella' });
    await conn.commit(); //提交事务
    const result = await this.mysql.select("test", {})
    console.log(result);
    } catch (err) {
    await conn.rollback();//回滚事务
    throw err;
    }


    ————————————————
    版权声明:本文为CSDN博主「醒途」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_28827635/article/details/106461540

    漫思
  • 相关阅读:
    Binary Search Tree Iterator 解答
    Invert Binary Tree 解答
    Min Stack 解答
    Trapping Raining Water 解答
    Candy 解答
    Jump Game II 解答
    Implement Hash Map Using Primitive Types
    Gas Station 解答
    Bucket Sort
    HashMap 专题
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/15268514.html
Copyright © 2011-2022 走看看