读书人

Java储存和读取oracleCLOB类型字段

发布时间: 2012-07-04 19:33:55 作者: rapoo

Java存储和读取oracleCLOB类型字段

package oracle.clob;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.Reader;import java.io.StringReader;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import oracle.jdbc.driver.OracleDriver;import oracle.sql.CLOB;public class ClobTest {String url = "jdbc:oracle:thin:@192.168.2.157:1521:orcl";String user = "xj";String pwd = "xj";String text = "这是要插入到CLOB里面的数据";private void clobImport() throws ClassNotFoundException, SQLException {// TODO Auto-generated method stubDriverManager.registerDriver(new OracleDriver());Connection conn = DriverManager.getConnection(url, user, pwd);// 得到连接对象String sql = "insert into clob_test(id,str) values (‘1‘,?)";// 要执行的SQL语句PreparedStatement stmt = conn.prepareStatement(sql);// 加载SQL语句// PreparedStatement支持SQL带有问号?,可以动态替换?的内容。Reader clobReader = new StringReader(text); // 将 text转成流形式stmt.setCharacterStream(1, clobReader, text.length());// 替换sql语句中的?int num = stmt.executeUpdate();// 执行SQLif (num > 0) {System.out.println("ok");} else {System.out.println("NO");}stmt.close();conn.close();}private void clobExport() throws ClassNotFoundException, SQLException,IOException {// TODO Auto-generated method stubCLOB clob = null;String sql = "select * from clob_test where id=1";DriverManager.registerDriver(new OracleDriver());Connection conn = DriverManager.getConnection(url, user, pwd);// 得到连接对象PreparedStatement stmt = conn.prepareStatement(sql);ResultSet rs = stmt.executeQuery();String id = "";String content = "";if (rs.next()) {id = rs.getString("id");// 获得IDclob = (oracle.sql.CLOB) rs.getClob("str"); // 获得CLOB字段str// 注释: 用 rs.getString("str")无法得到 数据 ,返回的 是 NULL;content = ClobToString(clob);}stmt.close();conn.close();// 输出结果System.out.println(id);System.out.println(content);}// 将字CLOB转成STRING类型public String ClobToString(CLOB clob) throws SQLException, IOException {String reString = "";Reader is = clob.getCharacterStream();// 得到流BufferedReader br = new BufferedReader(is);String s = br.readLine();StringBuffer sb = new StringBuffer();while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRINGsb.append(s);s = br.readLine();}reString = sb.toString();return reString;}// TODO Auto-generated method stubpublic static void main(String[] args) throws IOException,ClassNotFoundException, SQLException {// TODO Auto-generated method stubClobTest clobtest = new ClobTest();// read fileFileReader _frd = new FileReader(new File("D:““DOS.txt"));BufferedReader _brd = new BufferedReader(_frd);String _rs = _brd.readLine();StringBuffer _input = new StringBuffer();while (_rs != null) {_input.append(_rs);_rs = _brd.readLine();}// System.out.println(_input.toString());// 输入测试clobtest.text = _input.toString();clobtest.clobImport();// 输出测试// clobtest.clobExport();}}

读书人网 >行业软件

热点推荐