成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談如何解決微軟自帶JDBC的resultset缺陷

開發 后端
本文將談談如何解決微軟自帶JDBC resultset缺陷,希望本文能給大家更多的啟發與幫助,同時一定要記得關閉RS,釋放資源。

微軟自帶的3個驅動包分別為:msbase.jar,mssqlserver.jar,msutil.jar

微軟JDBC resultset驅動的缺點:

(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)

JDBC resultset代碼

  1. public static void main(String[] args) {     
  2.         // TODO Auto-generated method stub     
  3.         String url = "jdbc:microsoft:sqlserver://192.168.5.20:1435;DatabaseName=emos2.2";     
  4.         String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";     
  5.         try {     
  6.             Class.forName(driver);     
  7.             Connection conn = DriverManager.getConnection(url, "sa", "1234");     
  8.             if (conn.isClosed() == true) {     
  9.                 System.out.println("SomeThing   goes   wrong ");     
  10.             }     
  11.             PreparedStatement st = conn.prepareStatement("select * from TestTable");     
  12.             ResultSet rs = st.executeQuery();     
  13.             while(rs.next()){     
  14.                 System.out.println(rs.getString("guid"));     
  15.                 System.out.println(rs.getString("username"));     
  16.                 System.out.println(rs.getBinaryStream("content"));     
  17.                      
  18.             }     
  19.         } catch (ClassNotFoundException e) {     
  20.             System.out.println("SomeThing     wrong ");     
  21.             System.out.println(e);     
  22.         } catch (SQLException e) {     
  23.             e.printStackTrace();     
  24.         }     
  25.     }    
  26.  
  27. public static void main(String[] args) {  
  28.   // TODO Auto-generated method stub  
  29.   String url = "jdbc:microsoft:sqlserver://192.168.5.20:1435;DatabaseName=emos2.2";  
  30.   String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";  
  31.   try {  
  32.    Class.forName(driver);  
  33.    Connection conn = DriverManager.getConnection(url, "sa", "1234");  
  34.    if (conn.isClosed() == true) {  
  35.     System.out.println("SomeThing   goes   wrong ");  
  36.    }  
  37.    PreparedStatement st = conn.prepareStatement("select * from TestTable");  
  38.    ResultSet rs = st.executeQuery();  
  39.    while(rs.next()){  
  40.     System.out.println(rs.getString("guid"));  
  41.     System.out.println(rs.getString("username"));  
  42.     System.out.println(rs.getBinaryStream("content"));  
  43.       
  44.    }  
  45.   } catch (ClassNotFoundException e) {  
  46.    System.out.println("SomeThing     wrong ");  
  47.    System.out.println(e);  
  48.   } catch (SQLException e) {  
  49.    e.printStackTrace();  
  50.   }  
  51.  }  
  52.  
  53.    而第三方的驅動jtds1.2很好的解決了這些bug   
  54. Java代碼   
  55. public static void main(String[] args) {     
  56.         String url = "jdbc:jtds:sqlserver://192.168.5.20:1435/emos2.2";     
  57.         String driver = "net.sourceforge.jtds.jdbc.Driver";     
  58.         try {     
  59.             Class.forName(driver);     
  60.             Connection conn = DriverManager.getConnection(url, "sa", "1234");     
  61.             if (conn.isClosed() == true) {     
  62.                 System.out.println("SomeThing   goes   wrong ");     
  63.             }     
  64.             PreparedStatement st = conn.prepareStatement("select * from TestTable");     
  65.             ResultSet rs = st.executeQuery();     
  66.             while(rs.next()){     
  67.                 System.out.println(rs.getString("guid"));     
  68.                 System.out.println(rs.getString("username"));     
  69.                 System.out.println(rs.getBinaryStream("content"));     
  70.                      
  71.             }     
  72.         } catch (ClassNotFoundException e) {     
  73.             System.out.println("SomeThing     wrong ");     
  74.             System.out.println(e);     
  75.         } catch (SQLException e) {     
  76.             e.printStackTrace();     
  77.         }     
  78.     }   

【編輯推薦】

  1. 使用JDBC的五個精華功能
  2. Tomcat5+MySQL JDBC連接池配置
  3. 在Weblogic中實現JDBC的功能
  4. 詳解JDBC與Hibernate區別
  5. JDBC連接MySQL數據庫關鍵四步
  6. 淺談JDBC的概念理解與學習
責任編輯:彭凡 來源: javaeye
相關推薦

2009-07-22 13:32:24

JDBC SQL

2021-12-06 14:05:57

區塊鏈算法技術

2023-11-03 08:29:55

自動化測試

2009-07-06 17:50:13

Java JSP

2013-06-14 09:33:22

微軟補丁藍屏

2009-07-06 17:36:06

ResultSetJDBC Connec

2010-11-09 11:07:18

2009-07-15 18:07:47

JDBC代碼

2024-10-15 09:25:08

JDBCMybatis數據庫

2015-10-14 09:32:36

Amazon谷歌批量遷移

2011-07-22 14:14:23

java

2009-07-15 15:47:12

JDBC DAO

2009-07-17 17:41:25

JDBC連接SQL S

2012-09-05 11:09:15

SELinux操作系統

2017-10-17 09:21:06

2009-07-15 17:11:31

JDBC的概念

2009-06-29 17:17:57

Spring

2009-07-15 17:52:23

sqlite jdbc

2009-07-15 15:18:01

JDBC連接SQL S

2009-07-23 13:30:46

JDBC事務
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 荷兰欧美一级毛片 | 亚洲精品日韩一区二区电影 | 九色国产| 国产欧美日韩一区二区三区在线观看 | 色999视频 | 久久男人| 亚洲精品视频免费观看 | 精品视频一区二区 | 久久9999久久 | 国产在线一区二区三区 | www.国产精| 黄片毛片在线观看 | 欧洲亚洲一区二区三区 | 国产精品福利网站 | 91久久综合亚洲鲁鲁五月天 | 亚洲高清一区二区三区 | 亚洲国产一 | 精品毛片| 一区二区三区国产精品 | 久久久一区二区三区四区 | 欧美视频1区 | 成人教育av| 成人在线电影网站 | 成人免费观看视频 | 久久精品国产免费 | 一级a性色生活片久久毛片波多野 | 99久久婷婷国产精品综合 | 免费成人高清 | 热久色 | 成人av网站在线观看 | 久久er99热精品一区二区 | 国产欧美一区二区三区在线看 | 久久免费精彩视频 | 丝袜一区二区三区 | 99热播放| 国产高清在线 | 亚洲一区二区三区免费 | 中文字幕人成人 | jdav视频在线观看免费 | aa级毛片毛片免费观看久 | 性色网站 |