ibatis 链接MSSQL2008 的一些问题总结
2013-12-24 15:45
260 查看
首先给出链接MSSQLSERVER2008的三种方式:
第一种,使用mssql.jar 包,链接代码如下:
driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=dbname
username=***
password=***
第二种,使用sqljdbc4.jar包,链接代码如下:
注意:第一种和第二种在驱动名称有些不同,请大家注意下!
第三种,使用jdts.jar包,链接代码如下:
我想以上三种就是大家一般链接mssq 数据的方法啦!
下面我讲解下我使用中遇到的一些问题,有些问题解决了,有些莫有。
1.但我是使用第一种的时候,也就是mssql.jar 包,这里会遇到一个问题,那就是如果字段类型是text,varchar(max)类型的时候,如果字段的值为null或者“”空字符串,在执行查询操作的时候就会报错:java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]Underlying input stream returned zero bytes ;这样的错误,这个是mssql.jar
包的bug,一般大家搜索的时候大家都会推荐使用第三种方法也就是jdts.jar包,所以不推荐使用第一种方法连库。
2.上面我们说,如果遇见字段类型是text,varchar(max)类型的时候,而且字段的值为null或者“”空字符串时,就需要我们使用jdts.jar包,但是今天我使用这个包的时候也出现了问题,当字段类型是text,varchar(max)类型的时候,而且字段的值为null或者“”空字符串时的查询的时候确没有报错,插入也没有错误,但是如果有值时,ibatis却报了java.lang.NullPointerException,这个错误,查了半天才找到原因,可能是ibaits
使用查询的时候返回的类型是 net.sourceforge.jtds.jdbc.ClobImpl,这个类型,可能是ibiatis
在插入的时候无法转换造成了空指针异常的错误,解决办法就是在链接字符串的时候加入 ;useLOBs=false,上面的链接中我已经加入了,这个参数的目的是,将 net.sourceforge.jtds.jdbc.ClobImpl对象转成字符串放入内存中然后插入,这样问题就解决了,不知道大家遇到过莫有!
3.最后,在ibatis中使用sqljdbc4.jar包连裤,使用这个jar,就不会遇见1,2上面这样的情况,不过这里我也遇到了很多问题,一会是安全错误,安全错误只要在链接字符串后面添加integratedSecurity=true就可以啦!一会是缺少sqljdbc_auth.dll文件,要不就是出先下面异常 java.lang.SecurityException: class "com.microsoft.sqlserver.jdbc.ISQLServerPreparedStatement$$FastClassByProxool$$49d74c1"'s
signer information does not match signer information of other classes in the same package,这个错误好像是Jar包的前面冲突,只需要把jar里面META-INF目录下在三个文件删除就不会出现前面冲突啦!
以上就是我遇见的问题!请大家是情况使用!
第一种,使用mssql.jar 包,链接代码如下:
driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=dbname
username=***
password=***
第二种,使用sqljdbc4.jar包,链接代码如下:
driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=dbname;integratedSecurity=true; username_from=*** password_from=***
注意:第一种和第二种在驱动名称有些不同,请大家注意下!
第三种,使用jdts.jar包,链接代码如下:
driverClassNamem=net.sourceforge.jtds.jdbc.Driver url=jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=dbname;useLOBs=false; username=*** password=***
我想以上三种就是大家一般链接mssq 数据的方法啦!
下面我讲解下我使用中遇到的一些问题,有些问题解决了,有些莫有。
1.但我是使用第一种的时候,也就是mssql.jar 包,这里会遇到一个问题,那就是如果字段类型是text,varchar(max)类型的时候,如果字段的值为null或者“”空字符串,在执行查询操作的时候就会报错:java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]Underlying input stream returned zero bytes ;这样的错误,这个是mssql.jar
包的bug,一般大家搜索的时候大家都会推荐使用第三种方法也就是jdts.jar包,所以不推荐使用第一种方法连库。
2.上面我们说,如果遇见字段类型是text,varchar(max)类型的时候,而且字段的值为null或者“”空字符串时,就需要我们使用jdts.jar包,但是今天我使用这个包的时候也出现了问题,当字段类型是text,varchar(max)类型的时候,而且字段的值为null或者“”空字符串时的查询的时候确没有报错,插入也没有错误,但是如果有值时,ibatis却报了java.lang.NullPointerException,这个错误,查了半天才找到原因,可能是ibaits
使用查询的时候返回的类型是 net.sourceforge.jtds.jdbc.ClobImpl,这个类型,可能是ibiatis
在插入的时候无法转换造成了空指针异常的错误,解决办法就是在链接字符串的时候加入 ;useLOBs=false,上面的链接中我已经加入了,这个参数的目的是,将 net.sourceforge.jtds.jdbc.ClobImpl对象转成字符串放入内存中然后插入,这样问题就解决了,不知道大家遇到过莫有!
3.最后,在ibatis中使用sqljdbc4.jar包连裤,使用这个jar,就不会遇见1,2上面这样的情况,不过这里我也遇到了很多问题,一会是安全错误,安全错误只要在链接字符串后面添加integratedSecurity=true就可以啦!一会是缺少sqljdbc_auth.dll文件,要不就是出先下面异常 java.lang.SecurityException: class "com.microsoft.sqlserver.jdbc.ISQLServerPreparedStatement$$FastClassByProxool$$49d74c1"'s
signer information does not match signer information of other classes in the same package,这个错误好像是Jar包的前面冲突,只需要把jar里面META-INF目录下在三个文件删除就不会出现前面冲突啦!
以上就是我遇见的问题!请大家是情况使用!
相关文章推荐
- iBATIS + Oracle Clob(Blob)存取时的一些问题的经验总结
- 关于java编程中一些编程安全问题的总结
- VS2010,WinDDK搭建驱动程序以及相关一些小问题的总结
- 总结一些近期反思的问题
- 最近工作中遇到ElasticSearch一些问题总结
- 近期学习javascript和jquery遇到一些问题的技巧知识总结
- 关于网上一些兼容性问题的处理总结
- 水晶报表一些问题总结
- 总结一下最近面试遇到的一些问题吧
- 解决MSSQL 2008不能用IP登录的问题
- SQL 总结使用过程一些问题,点滴积累
- spring mvc的一些小问题的总结(更新)
- GFS一些问题总结
- 总结网页设计中的一些比较突出的细节问题
- Cocos2d-x项目过程中遇到的一些问题总结
- MsSQL链接Oracle的utf8的数据库兼容问题??
- mxnet深度学习实战:跑自己的数据实验和一些问题总结
- H.264中的一些问题总结
- 第二十三节: EF性能篇(三)之基于开源组件 Z.EntityFrameWork.Plus.EF6解决EF性能问题 第四节:一些指令总结 定时调度系列之Quartz.Net详解 第十七节:易混淆的概念(静态和非静态、拆箱和装箱) 那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)
- 总结一些谷歌新版本浏览器测试手机端swipe事件遇到的问题