import java.io.*;
import java.sql.*;
/*
* CLOB(Character Large Object)
* CLOB文本大对象操作
* 用于存储大量的文本数据
* 大字段有些特殊,不同数据库处理方式不一样,
* 大字段的操做一般是以流的方式来处理,而非一般的字段,一次即可读取数据
*
* TINYTEXT,TINYBLOB
* 一个BLOB或TEXT列,最大长度为255(2^8-1)个字符。
* BLOB,TEXT
* 一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。
* MEDIUMBLOB,MEDIUMTEXT,
* 一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。
* LONGBLOB,LONGTEXT
* 一个BLOB或TEXT列,最大长度为4294967295(2^32-1)个字符。
*/
public class TestCLOB {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
Reader r = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test","root","123456");
ps = conn.prepareStatement(
"insert into user (name,myInfo) values (?,?)");
ps.setString(1, "张三");
//将文本中的内容直接输入到数据库中
ps.setClob(2, new FileReader(new File("E:/jar/1.txt")));
ps.executeUpdate();
/*
* //将程序中的字符串输入到数据库的CLOB字段中
//1:从内到外,首先,将"aaabbb"字符串转换为字节流,然后转为输入流,将输入流转为字符流,就可以读取
* ps.setClob(2, new BufferedReader(new InputStreamReader(
new ByteArrayInputStream("aaabbb".getBytes()))));
*/
//读取写入的内容
ps = conn.prepareStatement("select * from user where name=?");
ps.setObject(1, 2);
rs = ps.executeQuery();
while(rs.next()){
Clob c = rs.getClob("myInfo");
r = c.getCharacterStream();
int temp = 0;
while((temp = r.read()) != -1){
System.out.println((char)temp);
}
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(r != null){
try {
r.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps != null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
9 大文本对象插入数据库(CLOB)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 要点#### 文件数据的读取相较数据库的存储较快 Android系统对单个应用的内存有限制 数据库操作中对数据的批...
- 大数据时代的 9 大Key-Value存储数据库 - 数据库 - ITeye资讯http://www.iteye....
- Accept:text/html,image/*(告诉服务器,浏览器可以接受文本,网页图片)Accept-Char...