SQL SERVER 2008行锁与jdbc配置

来源:互联网 发布:淘宝什么字体是免费的 编辑:程序博客网 时间:2024/06/06 06:52

  最近一直在做的项目中使用的数据库是SQL SERVER 2008,DB操作框架选用的是MyBatis。虽然项目框架中已经集成了spring进行事务管理,并且建立一套业务排他机制,仍无法避免多用户同时操作时造成的数据库写入误差,后来决定借助于行锁定进行排他。此间借助于 WITH (UPDLOCK,NOWAIT)语句竟自动升级为表锁,各种百度谷歌微软官网后无果,后浏览SQLSERVER技术支持项目组人员的一篇博客,得知原因为jdbc配置问题。SQL SERVER对于jdbc的sendStringParametersAsUnicode属性设置的默认值为true,技术支持组的博客中注明次属性必须设定为false,时间问题未再做深入调查,谨以此MARK一下。附jdbc完整配置:

jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc:sqlserver://xxx.xxx.xx.xx:xxxx;databaseName=xxxx;instanceName=MSSQLMSERVER2008;sendStringParametersAsUnicode=false
jdbc.username=xxxx
jdbc.password=xxxxxx

0 0