zoukankan      html  css  js  c++  java
  • java 操作clob

    之前在学校的时候做的都是练习,小儿科,遇到的情况完全都在自己的设想范围内。最近老是遇到字段溢出的情况,但是varchar2好像最长也只有4000个字符。所以不得不另辟蹊径,就找上了clob字段。

    package test;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.Writer;
    
    import java.sql.Clob;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    import oracle.sql.CLOB;
    
    public class ClobTest {
    	 private static Connection conn;  
         
    	    static {  
    	        try {  
    	            Class.forName("oracle.jdbc.driver.OracleDriver");  
    	            conn = DriverManager.getConnection(  
    	                    "jdbc:oracle:thin:@localhost:1521:orcl","wch","wch123");  
    	        } catch (ClassNotFoundException e) {  
    	            e.printStackTrace();  
    	        } catch (SQLException e) {  
    	            e.printStackTrace();  
    	        }  
    	    }  
    	      
    	    public static void main(String[] args) throws SQLException, IOException {  
    	      //  testInsert();  
    	       // testUpdate();  
    	        testRead();  
    	    }  
    	  
    	    private static void testInsert() throws SQLException {  
    	        String sql = "insert into CLOBTEST values(1, empty_clob(),empty_clob())";  
    	        Statement stm = conn.createStatement();  
    	        stm.execute(sql);  
    	    }  
    	      
    	    private static void testUpdate() throws SQLException, IOException {  
    	        String sql = "select context,c2 from CLOBTEST where id = 1 for update";  
    	        Statement stm = conn.createStatement();  
    	        ResultSet rs = stm.executeQuery(sql);  
    	        while (rs.next()) {  
    	            oracle.sql.CLOB c = (CLOB) rs.getClob(1);  
    	            Writer w = c.setCharacterStream(1);
    	            w.write("wchwchwch
    ");
    	            w.write("哈哈哈
    哈哈哈ds", 2, 5);
    	            w.flush();
    	            w.close();
    	            c = (CLOB) rs.getClob(2);
    	            w = c.setCharacterStream(1);
    	            w.write("dingsen");
    	            w.flush();
    	            w.close();
    	        }
    	        conn.commit(); 
    	    }  
    	      
    	    private static void testRead() throws SQLException, IOException {  
    	        String sql = "select context,c2 from CLOBTEST where id = 1";  
    	        PreparedStatement pstm = conn.prepareStatement(sql);  
    	        ResultSet rs = pstm.executeQuery();  
    	        System.out.println("-----------------------------------");
    	        while (rs.next()) {  
    	            Clob clob = rs.getClob(1);  
    	            BufferedReader r = new BufferedReader(clob.getCharacterStream());  
    	            char[] cs = new char[10]; 
    	            int total = 0;
    	            StringBuilder sb = new StringBuilder();
    	            while ((total = r.read(cs)) != -1) {  
    	                sb.append(cs,0,total);
    	            }  
    	            System.out.println(sb.toString());
    	        }  
    	    }  
    }
    

  • 相关阅读:
    java设计模式----工厂设计模式
    java拓展----CountDownLatch同步辅助类
    java设计模式----单例模式
    java拓展----Lock锁
    Orcal学习----初识Orcal
    java学习----泛型
    java学习----Junit&Log4j
    java学习----注解
    java学习----反射
    java学习----数据解析
  • 原文地址:https://www.cnblogs.com/vvch/p/4027588.html
Copyright © 2011-2022 走看看