iBatis 数据操作超时时间设置

ibatils

sqlmap.config中

<database>
<provider name="sqlServer2.0"/>

<dataSource ...    ConnectionTimeout="600"/>
</database>

 

ibatis.net 的坑

https://www.cnblogs.com/lookup/p/ibatis_net_commandtimeout.html

根据上面文章总结:

Connect Timeout=120;配置才起作用

Data Source=IP地址;uid=数据库用户名;pwd=密码;Initial Catalog=数据库名;Connection Timeout=60000;Connect Timeout=120;max pool size=10240

 

解决过程:

 

IBatisNet.DataMapper.SqlMapSession.CreateCommand 方法中:

 

val.set_CommandTimeout(_connection.get_ConnectionTimeout());

 

 

image.png

从SqlMap.config 和providers.config 找你使用什么数据库

在SqlMap.config中 找到 sqlServer2.0

<database>

<provider name="sqlServer2.0"/>

    。。。

  </database>

在providers.config 找到 

  <provider

    name="sqlServer2.0"

    description="Microsoft SQL Server 7.0/2000 provider in framework .NET V2"

enabled="true"

    default="true"

    assemblyName="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.SqlClient.SqlConnection"

    commandClass="System.Data.SqlClient.SqlCommand"

    parameterClass="System.Data.SqlClient.SqlParameter"

    parameterDbTypeClass="System.Data.SqlDbType"

    parameterDbTypeProperty="SqlDbType"

    dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"

    commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder"

    usePositionalParameters = "false"

    useParameterPrefixInSql = "true"

    useParameterPrefixInParameter = "true"

    parameterPrefix="@"/>

 

通过源码工具找到 System.Data.SqlClient.SqlConnection

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), ResDescription("SqlConnection_ConnectionTimeout")]

public override int ConnectionTimeout

 {

    get{

SqlConnectionString sqlConnectionString = (SqlConnectionString)this.ConnectionOptions;

if (sqlConnectionString == null)

{

return 15;

}

return sqlConnectionString.ConnectTimeout;

}

}

 

SqlConnectionString 中的属性

internal int ConnectTimeout

{

get{

return this._connectTimeout;

}

}

 

正确配置:

Data Source=IP地址;uid=数据库用户名;pwd=密码;Initial Catalog=数据库名;Connect Timeout=120;max pool size=10240

是:Connect Timeout=120;

​而不是 :Connection Timeout=600;

这儿单位是秒

 

ibatis是java的

https://blog.csdn.net/jackie_xiaonan/article/details/8459320

 

posted @   三瑞  阅读(369)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示