浏览 1929 次
锁定老帖子 主题:微软自带jdbc驱动缺陷
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-02
微软驱动的缺点: (1)如果采用jdbc-odbc驱动,那么就必须按照查询顺序来一次读取(不论有没有image或text类型) (2)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,不存在image或text类型字段,那么可以按照无序获取 (3)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,存在image或text类型字段,那么就必须按照顺序读取,否则就会报告Driver]ResultSet can not re-read row data for column之类的错误 测试方法和代码如下: 数据库表:TestTable 表字段及类型: guid char(38) title varchar(100) content Text username varchar(20) public static void main(String[] args) { // TODO Auto-generated method stub String url = "jdbc:microsoft:sqlserver://192.168.5.20:1435;DatabaseName=emos2.2"; String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; try { Class.forName(driver); Connection conn = DriverManager.getConnection(url, "sa", "1234"); if (conn.isClosed() == true) { System.out.println("SomeThing goes wrong "); } PreparedStatement st = conn.prepareStatement("select * from TestTable"); ResultSet rs = st.executeQuery(); while(rs.next()){ System.out.println(rs.getString("guid")); System.out.println(rs.getString("username")); System.out.println(rs.getBinaryStream("content")); } } catch (ClassNotFoundException e) { System.out.println("SomeThing wrong "); System.out.println(e); } catch (SQLException e) { e.printStackTrace(); } } 而第三方的驱动jtds1.2很好的解决了这些bug public static void main(String[] args) { String url = "jdbc:jtds:sqlserver://192.168.5.20:1435/emos2.2"; String driver = "net.sourceforge.jtds.jdbc.Driver"; try { Class.forName(driver); Connection conn = DriverManager.getConnection(url, "sa", "1234"); if (conn.isClosed() == true) { System.out.println("SomeThing goes wrong "); } PreparedStatement st = conn.prepareStatement("select * from TestTable"); ResultSet rs = st.executeQuery(); while(rs.next()){ System.out.println(rs.getString("guid")); System.out.println(rs.getString("username")); System.out.println(rs.getBinaryStream("content")); } } catch (ClassNotFoundException e) { System.out.println("SomeThing wrong "); System.out.println(e); } catch (SQLException e) { e.printStackTrace(); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-07-03
这都是哪年的黄历了???还贴出来。
微软的JDBC驱动已经经过了好几次大幅度更新,最新的最新版驱动还是不错的,支持SQLServer2000、2005、2008。 目前JDTS的更新停止了,目前停滞中。已经2年没发布新版本了,而且对2008没有支持。 |
|
返回顶楼 | |
发表时间:2009-07-03
那能麻烦您上传一下新驱动么?还有JDTS是支持2008的
|
|
返回顶楼 | |
发表时间:2009-07-03
JTDS主页上写得很明白,支持7.0、2000和2005,没2008。其最新的1.2.2版本是2007年8月发布的。而这时候SQLServer2008还没发布呢,怎么能说就支持2008呢。
微软SQLServer JDBC Driver 2.0地址 http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=99b21b65-e98f-4a61-b811-19912601fdc9 |
|
返回顶楼 | |
发表时间:2009-07-27
晕,这是sql2000的驱动,现在sqljdbc 2.0都发布了
|
|
返回顶楼 | |