nodejs mysql pool 只能插入10条记录或者较少记录

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cyzshenzhen/article/details/25296153

BEGIN;

 

解决方案:从连接池获取到的Connection,执行完操作后,必须及时关闭!

即:connection.end();

使用后发现console有打印出警告信息,大致意思为 end() 方法已过期,所以应该使用 connection.release() 方法!

 

测试环境:

1、首先nodejs环境下,安装 node-mysql,注意是“felixge/node-mysql”,不是“node-mysql”

2、我自己创建了一个简单的util,操作数据,代码如下

 

/**
 * 数据库操作
 * author: yzChen 2014-5-6 21:58:57
 */
var mysql = require('mysql');

var pool = mysql.createPool({
	host: '127.0.0.1',
	user: 'root',
	password: 'root',
	database:'nodejs',
	port: 3306
});


exports.execSql = function(sql, fn) {
	pool.getConnection(function (err, conn) {
		conn.query(sql, function (err1, res1) {
			fn(err1, res1);
		});
	});
}

3、调用时,就是util.execSql('your sql', function(err, res) { // your code })

 

但是需要注意的是,每次执行sql都是从连接池获取一个Connection!

 

下面使用测试代码,进行简单的测试:

 

var sql = 'insert test(name) values(UUID())';
	for(var i = 0; i < 15; i++) {
		dbUtil.execSql(sql, function(err, res) {
			if (err) console.log(err);
			console.log("INSERT Return ==> ");
			console.log(res);
		});
	}


执行完后,查看数据库记录,发现只有10条记录。

 

最终排查各种原因后,结果是因为每次获取Connection后,没有关闭!

只需要在

 

conn.query(sql, function (err1, res1) {

 

的后面添加

 

conn.release(); // 执行完成后,需要及时关闭连接

 

一行代码即可。

 

 

重新测试,查询数据库,共计新增15条记录。

 

END;

--- --- --- ---> 点击查看更多最新原创博文<--- --- --- ---

 

技术交流

 

 

展开阅读全文

奇怪了 为什么只能10条记录???

09-22

下面是这个ASP页面的代码rn我在看这段代码的时候 有个地方看不明白 rnrn就是 对代码进行修改成10条以上就出错了rnrn...怎么只能查讯10条或者10条以内的记录rnrn无法查询10条以上 为什么呢??大家帮我看看 rnrnrn以下是代码:rnrn<%rnserver.ScriptTimeout=100rn%>rnrnrnrnrn<%rn dbpath=Server.MapPath("../")&"/work/data/db.asp"rn connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpathrn set conn=server.createobject("ADODB.CONNECTION")rn set hconn=openHDB()rn conn.open connstr rnsub showjpfy(trs,tlink)rnif trs.eof then exit subrn%>rnrnrn<%rnend subrnsub showPara(Hsql,selP)rn dim rspararn set rspara=server.CreateObject("adodb.recordset")rn rspara.open Hsql,hconn,0,1'"select itemNo,itemvalue from reference where refname='"&Hpara&"'"rn do while not rspara.eofrn if trim(selP)=trim(rspara(0)) then rn response.Write(""&rspara(1)&""&vbcrlf)rn elsern response.Write(""&rspara(1)&""&vbcrlf)rn end ifrn rspara.movenextrn looprn rspara.closern set rspara=nothingrnend subrnrn%>rnrn==========================================================================rn 数据有连到数据库rn下面就是主要代码也就是看不懂的那部分rn <%rn rn dim rorsrn rors="年"rn sql="select distinct top 10 p.PropertyID,TrustDate as [日期],e.address2 from Property p left join Estate e on p.EstateID=e.EstateID "rnrn ------------------>>>>>>这句就是更改 数字10 以内的可以运行rnrn 数字10 以上 就没反应了 rnrn sql=sql&" where Status='有效' and p.Trade='年' "rn sql=sql&" and p.TrustDate<='"&date&"'"rn sql=sql&" Order by p.TrustDate desc,p.PropertyID desc"rnrn set hrs=server.CreateObject("adodb.recordset")rn rn hrs.open sql,hconn,0,1rn show hrs,"view_detailC.asp?hid=",""rn hrs.closern %> rnrnrn<%on error goto 0%>rnrn======================================================rn运行结果rn rn 日期 rn 2006-9-22 rn 2006-9-22 rn 2006-9-22 rn 2006-9-22 rn 2006-9-22 rn 2006-9-22 rn 2006-9-22 rn 2006-9-22 rn 2006-9-22 rn 2006-9-22 rnrn 现在我想把它改成能够显示比如20行 或者30行 该怎么改呢??rn rn rn rn 论坛

MYSQL插入记录

02-10

插入一条记录,如果输入的是英文。没有问题,正常,如果插入中文则报错rnexception rnrnorg.apache.jasper.JasperException: General error, message from server: "Incorrect string value: '\xC4\xE3\xBA\xC3' for column 'title' at row 1"rn org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)rn org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)rn org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)rn org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)rn javax.servlet.http.HttpServlet.service(HttpServlet.java:803)rnrnrnroot cause rnrnjavax.servlet.ServletException: General error, message from server: "Incorrect string value: '\xC4\xE3\xBA\xC3' for column 'title' at row 1"rn org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)rn org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)rn org.apache.jsp.ReplyOK_jsp._jspService(ReplyOK_jsp.java:121)rn org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)rn javax.servlet.http.HttpServlet.service(HttpServlet.java:803)rn org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)rn org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)rn org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)rn javax.servlet.http.HttpServlet.service(HttpServlet.java:803)rnrnrnroot cause rnrn 论坛

没有更多推荐了,返回首页