Java JDBC读取大文本类型数据(CLOB)
来源:互联网 发布:女孩子喜欢肌肉 知乎 编辑:程序博客网 时间:2024/05/06 14:19
Java JDBC读取大文本类型数据(CLOB)
开发中我们常常要把一些大文本类型数据存入数据库,例如一片文章这是后我们就需要数据库的CLOB类型来存储了。
一、建立数据库表
此不省略,因个人业务需求来建立。
二、程序实现
1、建立Java JDBC 工具类
package com.haerbin.JDBCProject.Connection;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public final class JdbcUtil_Oracle{private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";private static String user = "scott";private static String password = "tigger";private JdbcUtil_Oracle(){}static{try{Class.forName("oracle.jdbc.driver.OracleDriver");}catch (ClassNotFoundException e){throw new ExceptionInInitializerError(e);}}public static Connection getConnection() throws SQLException{return DriverManager.getConnection(url, user, password);}public static void free(ResultSet rs, Statement st, Connection conn){try{if (rs != null)rs.close();}catch (SQLException e){e.printStackTrace();}finally{try{if (st != null)st.close();}catch (SQLException e){e.printStackTrace();}finally{if (conn != null)try{conn.close();}catch (SQLException e){e.printStackTrace();}}}}}
2、建立大文本类模型(DAOMAIN)
package com.haerbin.JDBCProject.Daomain;public class Clob{private int id;private Clob clob_text;public int getId(){return id;}public void setId(int id){this.id = id;}public Clob getClob_text(){return clob_text;}public void setClob_text(Clob clob_text){this.clob_text = clob_text;}}
3、建立业务层接口
package com.haerbin.JDBCProject.Dao;import java.io.File;import java.io.IOException;import java.io.Reader;public interface ClobDao{public void AddClob(Reader reader, File file) throws IOException;public void getClob(Reader reader, File file) throws IOException;}
4、建立业务实现代码
package com.haerbin.JDBCProject.DaoImpl;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.Reader;import java.io.Writer;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import com.haerbin.JDBCProject.Connection.JdbcUtil_Oracle;import com.haerbin.JDBCProject.Dao.ClobDao;public class ClobDaoImpl implements ClobDao{/** * 将clob类型数据存入数据库。 */public void AddClob(Reader reader, File file) throws IOException{Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try{conn = JdbcUtil_Oracle.getConnection();String sql = "insert into clobtable(id, clob_text) values(my_sequences.nextval, ?)";ps = conn.prepareStatement(sql);ps.setCharacterStream(1, reader, (int) file.length());ps.executeUpdate();}catch (Exception e){e.printStackTrace();}finally{JdbcUtil_Oracle.free(rs, ps, conn);reader.close();}}/** * 从数据库中取得clob类型数据 */public void getClob(Reader reader, File file) throws IOException{Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;int i;// 用来装Reader读取的字符char[] buffer = new char[1024]; // Reader时候的缓冲区Writer writer = new BufferedWriter(new FileWriter(file));try{conn = JdbcUtil_Oracle.getConnection();String sql = "select clob_text from clobtable";ps = conn.prepareStatement(sql);rs = ps.executeQuery();while (rs.next()){reader = rs.getCharacterStream("clob_text");while ((i = reader.read(buffer)) != -1){writer.write(buffer, 0, i);System.out.println(new String(buffer, 0, i));}}}catch (Exception e){e.printStackTrace();}finally{JdbcUtil_Oracle.free(rs, ps, conn);reader.close();writer.close();}}}
5、调用接口实现大文本对象的存入
package com.haerbin.JDBCProject.Beans;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.Reader;import com.haerbin.JDBCProject.Dao.ClobDao;import com.haerbin.JDBCProject.DaoImpl.ClobDaoImpl;public class ClobTest{/** * 数据库中存入大文本类型 jdbc 存入大文本需要一个Reader , 通过 Reader reader = new * BufferedReader(new FileReader(file)); 来实现, 传过去File的原因是 , * jdbc那个方法需要知道文本的长度, 用file.length()可以求出来。 jdbc存入大文本只能是纯文本的. * * * @throws IOException */public static void main(String[] args) throws IOException{/*存入clob类型数据*/ClobDao cd = new ClobDaoImpl();/*MYSQL 用汉字的时候不可以插入, ORACLE可以 , 这是因为数据库字符问题*/File file = new File("D:/clob.txt");Reader reader = new BufferedReader(new FileReader(file));cd.AddClob(reader, file);/*从数据库读取clob类型数据*///ClobDao cd = new ClobDaoImpl();////File file = new File("D:/clob.txt");////Reader reader = new BufferedReader(new FileReader(file));////cd.getClob(reader, file);}}
- Java JDBC读取大文本类型数据(CLOB)
- JDBC处理大文本数据-Clob
- java存取oracle大数据clob类型
- jdbc大数据 CLOB BLOB
- JAVA 读取Oracle-clob类型
- 9.jdbC存取大对象CLOB类型
- clob 大文本类型与String 互转
- JDBC处理大数据(大文本的存储和读取)
- JDBC处理大数据(大文本的存储和读取)
- JDBC之大段文本数据的保存与读取
- Java JDBC读取二进制类型数据(BLOB)
- jdbc 使用PreparedStatement来存储和读取大数据(Blob或Clob)
- JDBC操作大数据CLOB和BLOB
- 使用Derby读取大数据(BLOB、CLOB)的问题
- ssh实现clob存储大文本数据
- jdbc读取数据库文本数据
- 使用JDBC处理大数据(大文本/二进制数据)
- Java中 读取Oracle clob类型
- Oracle常用语句备份
- 正则表达式
- webrtc 在MAC下和iOS下的编译
- 杂记asla-lib库函数snd_pcm_open打开流程
- NYOJ - sort it
- Java JDBC读取大文本类型数据(CLOB)
- IP网络号的指派范围
- ubuntu 12.10 中无法安装使用g++的解决方案
- 快速排序 知识点小结
- HTML5学习笔记2012.12.28——元素标记的省略,具有boolean值的属性,省略引号
- 在html中使用自己定义的字体(font)
- Freeswitch的http_cache模块与xml_curl模块
- android in practice_Basic threading(simpleImageDownload project)
- 商务智能-系统概述-数据图形方式