Java 存储和读取 oracle CLOB 类型字段


Java 存储和读取 oracle CLOB 类型字段

  1. packageoracle.clob;
  2. importjava.io.BufferedReader;
  3. importjava.io.File;
  4. importjava.io.FileReader;
  5. importjava.io.IOException;
  6. importjava.io.Reader;
  7. importjava.io.StringReader;
  8. importjava.sql.Connection;
  9. importjava.sql.DriverManager;
  10. importjava.sql.PreparedStatement;
  11. importjava.sql.ResultSet;
  12. importjava.sql.SQLException;
  13. importoracle.jdbc.driver.OracleDriver;
  14. importoracle.sql.CLOB;
  15. publicclassClobTest{
  16. Stringurl="jdbc:oracle:thin:@192.168.2.157:1521:orcl";
  17. Stringuser="xj";
  18. Stringpwd="xj";
  19. Stringtext="这是要插入到CLOB里面的数据";
  20. privatevoidclobImport()throwsClassNotFoundException,SQLException{
  21. //TODOAuto-generatedmethodstub
  22. DriverManager.registerDriver(newOracleDriver());
  23. Connectionconn=DriverManager.getConnection(url,user,pwd);//得到连接对象
  24. Stringsql="insertintoclob_test(id,str)values('1',?)";//要执行的SQL语句
  25. PreparedStatementstmt=conn.prepareStatement(sql);//加载SQL语句
  26. //PreparedStatement支持SQL带有问号?,可以动态替换?的内容。
  27. ReaderclobReader=newStringReader(text);//将text转成流形式
  28. stmt.setCharacterStream(1,clobReader,text.length());//替换sql语句中的?
  29. intnum=stmt.executeUpdate();//执行SQL
  30. if(num>0){
  31. System.out.println("ok");
  32. }else{
  33. System.out.println("NO");
  34. }
  35. stmt.close();
  36. conn.close();
  37. }
  38. privatevoidclobExport()throwsClassNotFoundException,SQLException,
  39. IOException{
  40. //TODOAuto-generatedmethodstub
  41. CLOBclob=null;
  42. Stringsql="select*fromclob_testwhereid=1";
  43. DriverManager.registerDriver(newOracleDriver());
  44. Connectionconn=DriverManager.getConnection(url,user,pwd);//得到连接对象
  45. PreparedStatementstmt=conn.prepareStatement(sql);
  46. ResultSetrs=stmt.executeQuery();
  47. Stringid="";
  48. Stringcontent="";
  49. if(rs.next()){
  50. id=rs.getString("id");//获得ID
  51. clob=(oracle.sql.CLOB)rs.getClob("str");//获得CLOB字段str
  52. //注释:用rs.getString("str")无法得到数据,返回的是NULL;
  53. content=ClobToString(clob);
  54. }
  55. stmt.close();
  56. conn.close();
  57. //输出结果
  58. System.out.println(id);
  59. System.out.println(content);
  60. }
  61. //将字CLOB转成STRING类型
  62. publicStringClobToString(CLOBclob)throwsSQLException,IOException{
  63. StringreString="";
  64. Readeris=clob.getCharacterStream();//得到流
  65. BufferedReaderbr=newBufferedReader(is);
  66. Strings=br.readLine();
  67. StringBuffersb=newStringBuffer();
  68. while(s!=null){//执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING
  69. sb.append(s);
  70. s=br.readLine();
  71. }
  72. reString=sb.toString();
  73. returnreString;
  74. }
  75. //TODOAuto-generatedmethodstub
  76. publicstaticvoidmain(String[]args)throwsIOException,
  77. ClassNotFoundException,SQLException{
  78. //TODOAuto-generatedmethodstub
  79. ClobTestclobtest=newClobTest();
  80. //readfile
  81. FileReader_frd=newFileReader(newFile("D://DOS.txt"));
  82. BufferedReader_brd=newBufferedReader(_frd);
  83. String_rs=_brd.readLine();
  84. StringBuffer_input=newStringBuffer();
  85. while(_rs!=null){
  86. _input.append(_rs);
  87. _rs=_brd.readLine();
  88. }
  89. //System.out.println(_input.toString());
  90. //输入测试
  91. clobtest.text=_input.toString();
  92. clobtest.clobImport();
  93. //输出测试
  94. //clobtest.clobExport();
  95. }
  96. }

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/foamflower/article/details/4497764 优质内容筛选与推荐>>
1、MYSQL整理的语法
2、高速网络环境下的网络带宽测试
3、iframe自适应,跨域,JS的document.domain
4、创新的实现举例 [ 光影人像 东海陈光剑 的博客 ]
5、最长上升子序列(LIS)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn