selectmethod=cursor的含义及其使用
?--jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=YFK;user=sa;password=sa;SelectMethod=cursor; ? 连接字符串中碰到的SelectMethod=cursor ? 以上是在使用sqlserver数据库的连接字符串的时候使用过。 例如:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=071008_03;SelectMethod=cursor ? 但是今天我将其用在oracle数据库的时候,却报出了一下的错误信息: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869824)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) ? 这是个老话题,2002年在使用ejb的bmp就遇到了这个问题 怀疑MS SQL不能在一个事务中建多个预处理句柄 import java.sql.*; public class Repro{ public static void main(String args[]) try { //fix 2 s2 = con.createStatement(); } catch (Exception e) { e.printStackTrace(); } } } 用SQL Server驱动一次select很多数据最好在connection string中加上SelectMethod=Cursor,以利用服务器端游标加快速度,其实不只sqlserver,oracle的jdbc,只要使用PreparedStatement,驱动默认就使用游标,sqlserver则不然,必须使用SelectMethod=Cursor才打开游标。 这点在使用jotm时,并且使用Xapool时,必须修改DataSourceFactory,把PreparedStatementPool禁掉,否则记录插的太快了,很可能是游标没来得及关闭 即使不使用jotm,大量向oracle插入数据,例如每毫秒1条,也会引发游标用完,所以大量插入数据时,应该使用oracle的批处理batchupdate. 可惜的是,微软的sqlserver的jdbc驱动不支持这个属性 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- CentOS 7.2.1511 编译安装Nginx1.10.1+MySQL5.6.33+PHP5.6.
- SQL server 2008 更改登录验证方式的方法
- sqlserver case用法
- SQLSERVER DBCC命令大全
- 一个mssqlserver表最多可以存放多少数据??
- 实体框架 – 数据库结构更改后如何正确更新实体模型?
- 数据库设计 – 管理更新 – 审核 – 发布工作流的最佳方法?
- SQLSERVER聚集索引与非聚集索引的再次研究(下)
- winxp下Apache + PHP + MySql安装设置方法
- 带你熟悉SQLServer2016中的System-Versioned Temporal Tabl