竹里館→憶童年

          獨(dú)坐幽篁里,彈琴?gòu)?fù)長(zhǎng)嘯;深林人不知,明月來(lái)相照
          posts - 9, comments - 23, trackbacks - 0, articles - 0
             :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理
          jdbc操作SQL Server中的image字段,要使用二進(jìn)制流的方法,下面我給出兩個(gè)簡(jiǎn)單的實(shí)例,一個(gè)是添加數(shù)據(jù)、一個(gè)是查詢數(shù)據(jù)

                     首先,在SQL Server中建立一個(gè)數(shù)據(jù)庫(kù),命名為:mydata,在數(shù)據(jù)庫(kù)里新建一個(gè)表:test,表里有兩個(gè)字段:tid(int)、tdata(image),掛號(hào)內(nèi)為數(shù)據(jù)類型。在D盤建立一幅圖像:123.jpg,之后我們將把123.jpg添加到數(shù)據(jù)庫(kù),然后再查詢。

          添加數(shù)據(jù)(TestInsert.java,SQL Server驅(qū)動(dòng)2005,2000的可以修改相應(yīng)驅(qū)動(dòng)和URL):
          import java.sql.*;
          public class TestInsert {
                 
          public static void main(String[] args){
                     String connectionUrl 
          =      "jdbc:sqlserver://localhost:1433;DatabaseName=mydata;user=sa;password="
                     Connection conn 
          = null;
            
                      
          try {
                          Class.forName(
          "com.microsoft.sqlserver.jdbc.SQLServerDriver");
                          conn 
          = DriverManager.getConnection(connectionUrl);

                          java.io.File file 
          = new java.io.File("d:\\123.jpg");
                          java.io.FileInputStream fis 
          = new java.io.FileInputStream(file);

                          ResultSet result
          =null;
                          String sql
          =null;
                          PreparedStatement prestmt
          =null

                          sql
          ="insert into test(tid,tdata) values(?,?)";
                          prestmt 
          =conn.prepareStatement(sql);
                          prestmt.setInt(
          11);
                          prestmt.setBinaryStream(
          2,fis,(int)file.length());
                          prestmt.executeUpdate();
                          System.out.println(
          "success!");
                          conn.close();
                     }

                     
          catch(Exception e){System.out.println("error: " + e);}
                 }

          }


          查詢并保存數(shù)據(jù)(TestQuery.java):
          import java.sql.*;
          import java.io.*;
          public class TestQuery {
              
          public static void main(String[] args){
                     String connectionUrl 
          = "jdbc:sqlserver://localhost:1433;DatabaseName=commerce1;user=sa;password=";
                     Connection conn 
          = null;
            
                     
          try {
                         Class.forName(
          "com.microsoft.sqlserver.jdbc.SQLServerDriver");
                         conn 
          = DriverManager.getConnection(connectionUrl);

                         java.io.File file 
          = new java.io.File("d:\\1230.jpg");          //不要覆蓋原來(lái)的文件,以便比較
                         java.io.FileOutputStream fos = new java.io.FileOutputStream(file);

                        String sql
          ="select tdata from test where tid=2";
                        Statement stmt 
          = conn.createStatement();
                        ResultSet result 
          = stmt.executeQuery(sql);
                        result.next();

                        InputStream fis 
          = result.getBinaryStream(1);
                        
          byte[] b = new byte[10*1024];
                        
          while(fis.read(b,0,10240!= -1){
                            fos.write(b,
          0,10240);
                        }

                       fos.flush();
                       System.out.println(
          "success!");
                       conn.close();
                   }

                  
          catch(Exception e){System.out.println("error: " + e);}
                }

          }


          評(píng)論

          # re: JDBC操作Image類型數(shù)據(jù)(添加和查詢)  回復(fù)  更多評(píng)論   

          2007-07-28 19:03 by
          哥哥,加油,努力,我相信你!我也要努力了!恩
          主站蜘蛛池模板: 类乌齐县| 铜陵市| 江达县| 奉贤区| 鄂尔多斯市| 塔河县| 定安县| 昔阳县| 清丰县| 曲松县| 喀喇沁旗| 霍林郭勒市| 巨野县| 岳阳县| 泸西县| 喀什市| 新闻| 浮山县| 滕州市| 汤阴县| 吉林市| 马鞍山市| 双鸭山市| 鄂伦春自治旗| 闵行区| 土默特右旗| 藁城市| 密云县| 武宣县| 松江区| 尼木县| 宿迁市| 石嘴山市| 南昌市| 石泉县| 游戏| 辽阳县| 洞口县| 合阳县| 化隆| 河北省|