node连接数据库

直连mysql

  • 直连mysql用的比较少,这里直接放个例子:
var mysql = require('mysql');
//连接数据库
var connection = mysql.createConnection({
	host:'localhost',
	user:'root',  //用户名
	password:'',   //密码
	database:'study',
	port:'3306'     //端口号
});
connection.connect(function(err){
	if(err){
	  console.log('---:'+err);
	  return;
	}
	console.log('连接succeed');
});
// 插入一条数据
var sql = 'insert into student (id,name,password) values(?,?,?)';
var param = ['wwwwww','wwwww','wwwww'];
connection.query(sql,param,function(err,rs){
	if(err){
		console.log(err.message);
		return;
	}
	console.log('插入数据succeed');
});
//执行查询 查询study数据库中的student表的数据
connection.query('select * from student',function(err,rs){
	if(err){
		console.log(err);
		return;
	}
	for(var i=0;i<rs.length;i++){
		console.log('id:'+rs[i].id+'name:'+rs[i].name+'password:'+rs[i].password);
	
	}
});
//关闭数据库
connection.end(function(err){
	if(err){
	  console.log('---:'+err);
	  return;
	}
	console.log('关闭succeed');
});

连接池连mysql

  • 连接数据库过程中建立连接是很耗时的,而使用连接池,可以预先创建好很多连接,访问数据库时直接拿过来,访问完成在放回连接池,这样要比直接连mysql更高效。
var mysql = require('mysql'); //调用MySQL模块
var aaa = new OptPool();  //初始化连接池对象
var pool = aaa.getPool(); //创建连接池
//从连接池获取一个连接
pool.getConnection(function(err,conn){
	//查询study数据库中的student表的数据
	var sql = 'select * from student';
	conn.query(sql,function(err,rs){
		if(err){
			console.log(err);
			return;
		}
		for(var i=0;i<rs.length;i++){
			console.log('id:'+rs[i].id+'name:'+rs[i].name);
		}
		conn.release();//放回连接池
	});
});
//创建一个用于创建连接池的对象
function OptPool(){
    this.flag = true; //是否连接通过
    this.pool = mysql.createPool({
      host:'localhost',
      user:'root',
      password:'',
      database:'study',
      port:'3306'
    });
    this.getPool = function(){
    	if(this.flag){
    		//监听connection事件
    		this.pool.on('connection',function(connection){
    			connection.query('SET SESSION auto increment increme')
    		   this.flag = false;
    		});
    	}
    	return this.pool;
    }

}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值