1. 建库连库
连接MySQL数据库需要安装支持
npm install mysql
我们需要提前安装按mysql sever端
建一个数据库mydb1
mysql> CREATE DATABASE mydb1; mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | mydb1 | | performance_schema | +--------------------+ 4 rows in set (0.00 sec)
然后建一张表user如下
create table user( id int not null primary key auto_increment, name VARCHAR(100) not null, pwd VARCHAR(100) not null, create_date TIMESTAMP NULL DEFAULT now() )ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE UNIQUE INDEX t_quiz_IDX_0 on user(name);
接下来我们利用nodejs连接mysql数据库
var mysql = require('mysql'); //调用MySQL模块 //创建一个connection var connection = mysql.createConnection({ host: 'localhost', //主机 user: 'root', //MySQL认证用户名 password: 'root', //MySQL认证用户密码 database: 'mydb1', port: '3306' //端口号 }); //创建一个connection connection.connect(function(err){ if(err){ console.log('[query] - :'+err); return; } console.log('[connection connect] succeed!'); }); //----插入 var userAddSql = 'insert into user (name,pwd) values(?,?)'; var param = ['fff','123']; connection.query(userAddSql,param,function(err,rs){ if(err){ console.log('insert err:',err.message); return; } console.log('insert success'); }); //执行查询 connection.query('SELECT * from user where id=?',[2], function(err, rs) { if (err) { console.log('[query] - :'+err); return; } for(var i=0;i<rs.length;i++){ console.log('The solution is: ', rs[i].uname); } }); //关闭connection connection.end(function(err){ if(err){ console.log(err.toString()); return; } console.log('[connection end] succeed!'); });
但是实际每次创建连接都需要一定的开销,执行效率就会有影响。下面介绍一种连接池连mysql的方法:node-mysql
2. 连接池配置使用
node-mysql是目前最火的node下的mysql驱动,是mysqlpool的一个模块。
下面的代码是提供一个连接池,getPool函数返回createPool创建的数据库连接池对象。
var mysql = require('mysql'); //调用MySQL模块 function OptPool(){ this.flag=true; //是否连接过 this.pool = mysql.createPool({ host: 'localhost', //主机 user: 'root', //MySQL认证用户名 password: 'root', //MySQL认证用户密码 database: 'test', port: '3306' //端口号 }); this.getPool=function(){ return this.pool; } }; module.exports = OptPool;
下面的代码展示如何使用这个连接池,插入和查询的使用。需要注意的是conn.release(); //释放一个连接放回连接池 需要再操作结束后再执行,否则后面的数据库操作会报错。
var OptPool = require('./models/OptPool'); var optPool = new OptPool(); var pool = optPool.getPool(); //执行SQL语句 //从连接池中获取一个连接 pool.getConnection(function(err,conn){ //----插入 var userAddSql = 'insert into user (uname,pwd) values(?,?)'; var param = ['eee','eee']; conn.query(userAddSql,param,function(err,rs){ if(err){ console.log('insert err:',err.message); return; } console.log('insert success'); //conn.release(); //放回连接池 }) //查询 conn.query('SELECT * from user', function(err, rs) { if (err) { console.log('[query] - :'+err); return; } for(var i=0;i<rs.length;i++){ console.log(rs[i].uname); } conn.release(); //放回连接池 }); });
下面介绍一个复杂一点的增删查改的数据库操作,因相互之间有依赖,所以代码可读性就变得特别差。
var OptPool = require('./models/OptPool'); var optPool = new OptPool(); var pool = optPool.getPool(); var insertSQL = 'insert into table1(name,pwd) values("conan","123"),("fens.me","456")'; var selectSQL = 'select * from table1 limit 10'; var deleteSQL = 'delete from table1'; var updateSQL = 'update table1 set name="conan update" where name="conan"'; pool.getConnection(function(err,conn){ //delete conn.query(deleteSQL, function (err0, res0) { if (err0) console.log(err0); console.log("DELETE Return ==> "); console.log(res0); //insert conn.query(insertSQL, function (err1, res1) { if (err1) console.log(err1); console.log("INSERT Return ==> "); console.log(res1); //query conn.query(selectSQL, function (err2, rows) { if (err2) console.log(err2); console.log("SELECT ==> "); for (var i in rows) { console.log(rows[i]); } //update conn.query(updateSQL, function (err3, res3) { if (err3) console.log(err3); console.log("UPDATE Return ==> "); console.log(res3); //query conn.query(selectSQL, function (err4, rows2) { if (err4) console.log(err4); console.log("SELECT ==> "); for (var i in rows2) { console.log(rows2[i]); } }); }); }); }); }); })
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍nodejs中操作mysql数据库示例,包括了nodejs中操作mysql数据库示例的使用技巧和注意事项,需要的朋友参考一下 引言: 继前面的NodeJS的Hello,World!我们还可以看到其他强大之处,NodeJS现在社区的火热,以及大批工程师对它的支持之下,现在已经陆续的引出了大量的module出来了。 内容: 下面这个所演示的是NodeJS与Mysql 的交互。 这时需要为
本文向大家介绍myeclipse中连接mysql数据库示例代码,包括了myeclipse中连接mysql数据库示例代码的使用技巧和注意事项,需要的朋友参考一下 1. 环境配置 下载地址:http://www.mysql.com/downloads/mysql/ 真麻烦,下载的话还需要注册和登录以及填个表。上面的信息还挺全的,乱填的信息也是可以接受的~~ 下载后按提示安装即可,最后设置登录mysql
本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查。 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。 PyMySQL 安装 在使用
本文向大家介绍java连接mysql数据库 java连接sql server数据库,包括了java连接mysql数据库 java连接sql server数据库的使用技巧和注意事项,需要的朋友参考一下 在java的应用中,我们经常会对数据库进行必要的操作,下来我们就了解一下如何用java连接mysql数据库 以及java连接sql server数据库 一、mysql 二、sql server 以上就
问题内容: 我希望将动态连接字符串传递给实体框架上下文。我有150多个相同的模式(每个帐户一个),我想这样选择连接: 从理论上讲,这很容易,因为我可以创建一个connectionString并将其作为构造函数的参数传递,例如: 仅传递连接字符串名称时,我可以成功连接,但如下所示动态生成时,则不能成功。我现在意识到这是因为web.config中的连接字符串具有属性。 但是,当我将实际的连接字符串动态