数据库中使用Clob处理长文本
2015-09-29 14:58
246 查看
长文本(Clob)和二进制文件(Blob)的处理难点其实不再JDBC上,而是在输入输出上。
package cn.itcast.jdbc; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Reader; import java.io.Writer; import java.sql.Clob; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; //大字符串处理 public class ClobTest { public static void main(String[]args) throws SQLException, IOException{ // create(); read(); } static void create() throws SQLException, IOException { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); String sql = "insert into clob_test(big_text)values(?)"; ps = conn.prepareStatement(sql); File file=new File("src/cn/itcast/jdbc/JdbcUtils.java"); Reader reader=new BufferedReader(new FileReader(file)); ps.setCharacterStream(1, reader, (int)file.length()); //字符流 int i = ps.executeUpdate(); reader.close(); System.out.println("i=" + i); } finally { JdbcUtils.free(rs, ps, conn); } } static void read() throws SQLException, IOException { Connection conn = null; Statement st = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); st = conn.createStatement(); rs = st.executeQuery("select big_text from clob_test"); while (rs.next()) { //读取大文本,方式1 Clob clob=rs.getClob("big_text"); Reader reader=clob.getCharacterStream(); //读取大文本,方式2 //Reader reader=rs.getCharacterStream(1); //读取大文本,方式3 //String s=rs.getString(1); //System.out.println(); File file=new File("JdbcUtils.java"); Writer writer=new BufferedWriter(new FileWriter(file)); char[]buff=new char[1024]; //缓冲区 for(int i=0;(i=reader.read(buff))>0;) writer.write(buff,0,i); writer.close(); reader.close(); } } finally { JdbcUtils.free(rs, st, conn); } } }
相关文章推荐
- mysql 数据库建立索引
- 安全删除MySQL二进制日志的3种方法
- Oracle中单引号的使用
- oracle之trunc与round
- 数据库连接配置
- mysql升级
- mongodb常用的查询命令例子
- StackExchange.Redis 使用-发布订阅 (二)
- Navicat 数据库的导入导出
- Mysql笔记
- mysql5.5多实例安装
- 数据库的增长方式
- oracle的listener.ora sqlnet.ora tnsnames.ora三个文件的关联性
- MySql5.5以上版本设置主从结构的例子
- mysql获取汉字拼音首字母
- 数据库范式
- C# 数据库配置
- ibatis与SQL注入
- Oracle性能查看和表空间查看
- 创建数据库索引