node 链接 mysql 数据库三种方法------笔记

1、mysql库

文档:https://github.com/mysqljs/mysqlmysql

mysql有三种建立链接方式git

1.createConnection

使用时须要对链接的建立、断开进行管理github

2.createPool

建立资源池,使用时不须要对链接的建立、断开进行管理,每次使用完调用一次release进行释放链接到资源池,至于链接是否断开交给资源池去管理。每次创建链接时很是消耗资源的,影响性能,所以对链接建立合理的管理,有利于提升性能。sql

3.createPoolCluster

建立链接池集群,容许与多个host链接数据库

2、sequelize库

中文文档:https://github.com/demopark/sequelize-docs-Zh-CN性能

此库依赖mysql2学习

与mysql库相比,不须要写sql语句,增删查改都封装成对应的方法。
mysql库入门比较简单,有利于学习sql语句
sequelize封装了一些简单sql语句,掌握封装的方法及对应的参数便可,但学习成本稍微高一些,须要建立模式,模式须要与数据库中的表对应起来。在项目实际开发过程当中,使用sequelize开发效率更高,代码能够更加简短。也有query方法,支持使用sql语句。spa

sequelize提供了一个方法sequelize.sync({ force: true });强制数据库中的表与模式定义的表进行同步,若是数据库中存在与模式定义同名的表,此表会被删除,从新定义。若是数据库中存在模式未定义的表,不会对其进行操做。
也能够对单个模式设置强制同步
如:code

// 注意:若是表已经存在,使用`force:true`将删除该表
User.sync({ force: true }).then(() => { // 如今数据库中的 `users` 表对应于模型定义
  return User.create({ firstName: 'John', lastName: 'Hancock' }); });

 


强制同步也有风险点:
1.适合在项目初始化,须要建立数据表的时候使用
2.若是数据库中已有部分数据,当服务重启时,数据库中模式定义的表会被删除,数据会丢失,所以不适合在非初始化时使用,所以在使用时须要判断是否时初始化的状况blog



做者:爱扎马尾的小狮子
连接:https://www.jianshu.com/p/e3bc48b4a050
来源:简书
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

相关文章
相关标签/搜索