mysql驱动程序

什么是驱动程序

  1. 是连接内存和其他存储介质的桥梁
  2. mysql驱动程序是连接内存数据和mysql数据的桥梁
  3. mysql驱动程序通常使用:mysql、mysql2(/mysql-native优化做的更好, 且支持async)

    mysql2的使用

    https://github.com/sidorares/node-mysql2#readme
    1. npm i mysql2
    2. # 然后写node代码就行了

    防止sql注入

    sql注入:用户通过注入sql语句到最终查询中,导致了整个sql与预期行为不符
    mysql支持变量:变量的内容不作为任何sql关键字(使用预编译了)
    1. const sql = `select * from employee where id=? or name=?`;
    2. await connection.execute(sql, [id, name]);

    使用连接池

    1. const pool = mysql2.createPoo({xxxx: ....});

    Sequelize简介

    ORM

    Object Relational Mapping 对象关系映射
    通过ORM框架,可以自动的把程序中的对象和数据库关联
    ORM框架会隐藏具体的数据库底层细节,让开发者使用同样的数据操作接口,完成对不同数据库的操作
    见源码中的「ORM原理图」

    ORM的优势

    开发者不用关心数据库,仅需关心对象
    可轻易的完成数据库的移植
    无须拼接复杂的sql语句即可完成精确查询

    Node中的ORM

    Sequelize框架:支持js和ts,成熟;(我们后续就用这个)
    TypeORM框架:支持TS,不成熟

    模型定义和同步

    https://github.com/demopark/sequelize-docs-Zh-CN
    1. npm i sequelize mysql2