创建一个数据库
登录mysql -u root -p
创建一个数据库CREATE DATABASE NAME
切换数据库use databaseName
用node连接
import mysql from 'mysql'
let connection = mysql.createConnection({
host: '',
port: '',
user: '',
password: '',
database: ''
})
// 连接数据库
connection.connect(err=>{
if (err) throw err
});
// 操作
const sql =''//sql语句
connection.query(sql,(err,res)=>{}) // 使用该方法可以对数据库进行操作。
封装一下
如果使用 mysql.createConnection 连接都需要每次建立连接,操作完释放连接,再次连接。 用mysql.createPool 连接方便
Rather than creating and managing connections one-by-one, this module also provides built-in connection pooling using
mysql.createPool(config). Read more about connection pooling.
// 封装数据库操作
const mysql = require('mysql')
const config = require('../config/index.js')
// const connection = mysql.createConnection(config.sqlConfig)
// Cannot enqueue Handshake after invoking quit. 解决方法用连接池
const pool = mysql.createPool(config.sqlConfig)
let query = function( sql, values ) {
return new Promise(( resolve, reject ) => {
pool.getConnection(function(err, connection) {
if (err) {
resolve( err )
} else {
connection.query(sql, values, ( err, rows) => {
if ( err ) {
reject( err )
} else {
resolve( rows )
}
connection.release()
})
}
})
})
}
module.exports = {
query
}
封装后使用
let sql = `select * from tableNmae;`
async function fun (){
const res = await query(sql)
}
一个问题
在表中添加 datetime类型数据,在获取数据时会显示 2002-12-16T00:00:00.00Z 而不是2002-12-16 00:00:00
原本以为需要将字符串拼接,结果看了一下获取的数据类型是object。
查了一下解决方法:在连接数据库时 添加timezone:"SYSTEM"
实际上是数据库时区的设置,将其设置成系统的失去,否则用的是格林威治时间