sql2005 批量更新问题的解决方法
首先注意Statement 和PreparedStatement的问题
Statement sm = cn.createStatement();
sm.addBatch(sql1);
sm.addBatch(sql2);
...
sm.executeBatch()
用Statement的好处就是每次可以直接传一个SQL语句进去,不用管那么多。可是在数据量比较大的时候,应该会对效率有影响。不建议使用。
PreparedStatement ps = cn.preparedStatement(sql);
{
ps.setXXX(1,xxx);
...
ps.addBatch();
}
ps.executeBatch();
PreparedStatement是会预编译的,只要一条SQL,不断动态设值,然后addBatch(),在数据量大的时候比较好,非常建议使用。
还有就是JDBC的驱动问题,很多同志可能还是在用2000的驱动呢,没有用批量更新的程序没有多大问题,可是一旦用了批量更新,出现很多问题,
反正数据库很卡,慢。还可以更新不了哦。
我强烈建议大家更新JDBC驱动。
但是如果出现
SQLServerException: sp_cursoropen/sp_cursorprepare: 该语句参数只能是一个批或带有单个 SELECT 语句的存储过程,且不带 FOR BROWSE、COMPUTE BY 或变量赋值。
应该就是JDBC的版本问题,1.0的驱动有这个问题,好像不支持批量更新,我建议大家使用1.2
我测试过了,完全没有问题!
提供一些数据连接参数
jdbc.driverClassName:com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url:jdbc:sqlserver://127.0.0.1:1444;databaseName=fax;selectMethod=cursor;
相关推荐
-
sql2005 批量更新问题的解决方法
首先注意Statement 和PreparedStatement的问题 Statement sm = cn.createStatement(); sm.addBatch(sql1); sm.addBatch(sql2); ... sm.executeBatch() 用Statement的好处就是每次可以直接传一个SQL语句进去,不用管那么多.可是在数据量比较大的时候,应该会对效率有影响.不建议使用. PreparedStatement ps = cn.preparedStatement(sql)
-
php批量添加数据与批量更新数据的实现方法
本文实例讲述了php批量添加数据与批量更新数据的实现方法.分享给大家供大家参考.具体分析如下: php如果要批量保存数据我们只要使用sql的insert into语句就可能实现数据批量保存了,如果是更新数据使用update set就可以完成更新了,操作方法都非常的简单,下面整理两个例子. 批量数据录入 设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中. 其中,应用一个count(
-
mybatis执行批量更新batch update 的方法(oracle,mysql两种)
Oracle和MySQL数据库的批量update在mybatis中配置不太一样: oracle数据库: <code class="hljs tcl" style=""><<span class="hljs-keyword" style="">update</span> id=<span class="hljs-string" style=""
-
Vue对象赋值视图不更新问题及解决方法
当我们需要对vue里面data数据做动态更新. 如下,实例化了Vue对象,其下vueData为data属性指向,现在我们需要由后台装载完整的data对象 现在我们需要装载更新完整的data对象,常规的赋值方式并不会引起视图的更新,双向绑定会失效. 如上图中默认broker_list为空对象,装载完之后broker_list 包含新项(ZY98) 解决办法: $.each(clientData, function (k, v) { Vue.set(vueData,k,Object.assign({
-
关于AngularJS中ng-repeat不更新视图的解决方法
最近写AngularJS项目中,遇到一个问题,先对数组进行赋值,ng--repeat正常工作,然后对数组进行修改,ng-repeat似乎没有工作,视图没有更新. 原因是ng-repeat会已默认值排序,由于我的数组中的元素有重复,所以ng-repeat没有对重复的元素进行刷新,只要对ng-repeat指定track by就可以了 <tr ng-repeat="selectedCriterias in selectedCriteriasArray track by $index"&
-
vue列表数据发生变化指令没有更新问题及解决方法
问题描述,在vue的for循环中使用了指令,然后对数据进行筛选的时候,发现指令没有起作用. 如图前面的图标是根据文件名的后缀名,返回响应图标的,通过指令实现的.然后我们在搜索框中删选以后,数据更新了,但是图标没有更新 分析原因 <div v-for="(item, index) in myDate" :key='index'> ... </div> 问题就出在了:key='index'因为vue中for循环是根据key的值的变化来更新vnode的,很显然我们经过
-
vscode检测到#include错误请更新includePath的解决方法
vscode检测到#include错误,请更新includePath. 解决方法 最近电脑重做,重新安装了一边vscode,但是写代码的时候发现头文件会标错,显示无法找到,下面是我的解决办法: 执行命令查看g++包含路径 g++ -v -E -x c++ - 复制上面红框的内容 在vscode中摁ctrl+shift+p搜索json文件 在includePath里面粘贴红框的库路径,注意双引号和逗号格式 如果再有问题,试试把"/usr/include",放在第一行,如上,解决问题 到此
-
详解mybatis 批量更新数据两种方法效率对比
上节探讨了批量新增数据,这节探讨批量更新数据两种写法的效率问题. 实现方式有两种, 一种用for循环通过循环传过来的参数集合,循环出N条sql, 另一种 用mysql的case when 条件判断变相的进行批量更新 下面进行实现. 注意第一种方法要想成功,需要在db链接url后面带一个参数 &allowMultiQueries=true 即: jdbc:mysql://localhost:3306/mysqlTest?characterEncoding=utf-8&allowMulti
-
ASP+MSSQL2000 数据库被批量注入后的解决方法第1/2页
mssql的每个varchar.text字段都被自动插入一段js代码,即使删除这段代码,如果没有从源头上解决,几分钟后,js代码就又会自动插入数据库. 经过飘易的观察,这很有可能是程序自动执行的,黑客先从搜索引擎google.百度等搜索存在漏洞的采用asp+mssql设计的网站,然后采用小明子这样的注入扫描工具,扫描整个网站,一旦发现有sql注入的漏洞或者上传漏洞,黑客就通过各种手段,上传自己的大马,如海阳木马:然后,黑客就把这个网站纳入他的肉鸡列表,随时在数据库里加入自己希望加的js代码,而这
-
PHP执行批量mysql语句的解决方法
当有多条mysql语句连起来需要执行,比如 $sqls= "insert table a values(1,2); insert table a values(2,3);" 需要执行的话php中可以使用的方法有三个: mysql_query pdo mysqli 三种方法当sqls语句没有问题的时候都是可以的. 但是 当sql语句是错误的时候会出现问题第一条sql错误:三个方法都返回false 第一条sql正确,第二条sql错误:mysql_query.pdo. mysqli:quer
随机推荐
- Angular中$broadcast和$emit的使用方法详解
- AngularJS中的指令实践开发指南(二)
- 详解java中的互斥锁信号量和多线程等待机制
- 10个基于浏览器的JavaScript调试工具分享
- Python单元测试框架unittest简明使用实例
- 完美转换MySQL的字符集 解决查看utf8源文件中的乱码问题
- 用python 制作图片转pdf工具
- 富有哲理的故事|寓言故事|短篇
- 三种取消选中单选框radio的方法
- shell字符串操作详解
- nginx,apache的alias和认证功能
- Java基础教程之类型转换与多态
- 解析jQueryEasyUI的使用
- jQuery EasyUI ProgressBar进度条组件
- IIS下PHP运行环境搭建与网页服务器故障排查方法
- 在IIS 7中配置PHP运行环境简单步骤[图文教程]
- php求数组全排列,元素所有组合的方法
- django 使用 PIL 压缩图片的例子
- Java中Set&List的迭代器实现步骤解析
- Python 中的pygame安装与配置教程详解