nodejs之数据库的增删改查

mysql模块介绍

node的数据库操作,是需要建立在mysql模块之下,mysql模块不是系统模块,需要从npm下载,先解释下node系统模块为什么没有封装mysql,因为数据库的种类有很多,不可能每一种都封装在里面,那样会造成性能浪费。

SQL用的比较多的就有:

MySQL:免费,中小网站,性能较好、

Oracle:银行类使用、金融级、不免费而且挺贵、性能强、容灾强

SQLServer:微软的一种,用的比较少

基于node环境下数据库操作需要介绍以下几个知识点:

1、如何连接数据库,

2、数据的增、删、改、查,

3、数据的JSON格式转换,

4、如何创建数据库连接池,

搭建数据库

开始这些之前我们先利用数据库创建一个表:

首先CMD打开命令环境输入=>

mysql -u 账号 -p 密码

进入数据库,显示所有数据库=>

show databases;

创建一个叫myapp的库=>

create database myapp;

进入myapp库,创建users表=>

use myapp;

建表:

CREATE TABLE users(

id INT(16) auto_increment primary key,

username varchar(32) NOT NULL,

password varchar(32) NOT NULL

);

//id设为主键并且自增

插入数据,因为id已经是自增这里不需要设置=>

INSERT INTO users (username,password) VALUES ('王花花',123456);

。。。多插入几条数据后。。。

查看表内容=>

SELECT*FROM users

创建数据库连接

1、先从npm下载mysql模块=>

npm install mysql

2、连接=>

const mysql=require('mysql');

const connection=mysql.createConnection({

host:'localhost',

//数据库主机地址

user:'root',

password:'root',

database:'myapp'

});

connection.connect();

connection.query("数据库语句",function(err,data){

if(!err){

console.log(data);

}

});

connection.end();

SQL操作之增、删、改、查

node并不能直接操作数据库,而是通过query()函数来操作数据库命令语句。

数据库操作语句都放在query()函数中=>

增:(因为id是自增,所以不用设置)

connection.query("INSERT INTO users(username,password) VALUES ('zzh','12354')");

删:(这里通过名字检索删除)

connection.query("DELETE FROM users WHERE username='zzh'");

改:(这里通过id检索修改)

connection.query("UPDATE users SET username ='赵二蛋',password ='123' WHERE id =11");

查:

(查看表所有数据)

connection.query("SELECT*FROM users");

(查看单条数据,通过id检索)

connection.query("SELECT*FROM users WHERE id=7");

SQL数据连接池

用户频繁的访问数据库的时候,如果每次都要创建连接,那样势必会造成性能损失,如果创造一个连接池一直保持30-50个连接,当用户访问的时候就可以直接拿来使用,那样就可以大大增加用户体验。

只需要简单的几句代码就可以创建一个连接池=>

const mysql=require('mysql');

const pool=mysql.createPool({

host:'localhost',

user:'root',

password:'root',

database:'myapp'

});

connection.connect();

connection.query("数据库语句");

connection.end();

数据转json格式

因为数据库拿到的数据前端无法识别,这时候就需要使用到json数据格式,前端拿到后再解析成js对象、数组。

connection.query('SELECT*FROM users', function (err, data){

console.log(data);

var json=JSON.stringify(data);

response.write(json);

response.end();

});

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180126G12Y7C00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券