本文章的前提是电脑上已经安装好nodejs和mysql,另外我还安装了Navicat(一个可视化的数据库管理工具,还蛮好用的,从官网下载安装即可)。
下面进入正题,相信有很多像我一样初学写后台的小盆友会遇到这样的疑问,把mysql安装好了,nodejs也知道怎么开启服务了,但是怎么将两者连接在一起呢?当当当当!!!其实so easy,请看下面几行代码
//引入mysql(既然要使用它,当然要引入啦)
const mysql = require("mysql");
//连接mysql,option可很具情况自行配置
const option = {
host: "localhost",
user: "root",
password: "xxxxxx",
database: "mysql",
port: '3306',
connectTimeout: 5000, // 连接超时
};
const connection = mysql.createConnection(option);
//连接开始
connection.connect();
//这里就是增删改查的地方啦
//结束连接
connection.end();
其中,option中的配置还有很多其他参数,如下:
host | 主机地址 (默认:localhost) |
user | 数据库用户名 |
password | 密码 |
port | 端口号(默认为3306) |
database | 数据库名 |
connectTimeout | 连接超时(默认:不限制;单位:毫秒) |
multipleStatements | 是否许一个query中有多个MySQL语句 (默认:false) |
localAddress | 此IP用于TCP连接(可选) |
charset | 连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写) |
socketPath | 连接到unix域路径,当使用 host 和port 时会被忽略 |
timezone | 时区(默认:'local') |
stringifyObjects | 是否序列化对象(默认:'false' ;与安全相关) |
typeCast | 是否将列值转化为本地JavaScript类型值 (默认:true) |
queryFormat | 自定义query语句格式化方法 |
supportBigNumbers | 数据库支持bigint或decimal类型列时,需要设此option为true (默认:false) |
bigNumberStrings | supportBigNumbers和bigNumberStrings启用 强制bigint或decimal列以JavaScript字符串类型返回(默认:false) |
dateStrings | 强制timestamp,datetime,data类型以字符串类型返回,而不是JavaScriptDate类型(默认:false) |
debug | 开启调试(默认:false) |
flags | 用于修改连接标志 |
ssl | 使用ssl参数(与crypto.createCredenitals参数格式一至)或一个包含ssl配置文件名称的字符串,目前只捆绑Amazon RDS的配置文件 |
配置参数实在有点多 ,小丁也还没有逐个去测试,感兴趣的小伙伴可自行测试哦~
但是疑问又来了,我怎么知道成功连接了呢???
写进去一条数据试试不就知道了。。。但是我们需要在数据库中先新建一个表,我是直接用Navicat建的,表名叫student,如下图
// 在连接开始和断开之间插入下面的语句
let addSql = "insert into student (name) values (?)"; //student为表名
let addSqlParams = ['new'];
// 执行插入语句
connection.query(addSql, addSqlParams, (err, results) => {
if (err) {
throw err;
}
// 插入成功输出
console.log('插入成功');
console.log(results);
});
这时候就可以打开Navicat查看是否有刚刚插入的数据,当然也可以直接在终端打印数据库表中的所有数据(但是对于我这种懒人,当然是选择可视化的Navicat啦)
最后一条new就是新增的数据啦,到这就先恭喜你,增加数据就成功了,当然删除、查询、修改也不能少呀!!!当当当!!这不是来了。
// 删除语句
let delSql = "delete from student where id = 3";
// 执行删除语句
connection.query(delSql, (err, results) => {
if (err) {
throw err;
}
// 执行成功
console.log('删除成功!');
console.log(results);
});
// 修改数据
let modSql = "update student set name = ? where id = ?";
let modSqlParams = ["update", 6];
// 执行更新语句
connection.query(modSql, modSqlParams, (err, results) => {
if (err) {
throw err;
}
console.log("修改成功!");
console.log(results);
});
// 查询语句
let sql = 'SELECT * FROM student';
// 执行查询语句
connection.query(sql, (err, results) => {
if (err) {
throw err;
}
// 查询成功
if (results) {
for (let i = 0; i < results.length; i++) {
console.log(results[i]);
}
}
});
总结:
以上只是小丁在数据库增删改查上的一个初探,都是些简单的用法,适合初学入门。