package com.itheima.clob.test;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.junit.Test;
import com.itheima.utils.JdbcUtil;
/**
* 测试大文本数据读写
drop database day16;
create database day16;
use day16;
create table testclob(
id int primary key,
content longtext
);
* @author wangli
*
*/
public class ClobTest {
@Test //写入
public void testClobAdd(){
Connection con = null;
PreparedStatement st =null;
try {
con = JdbcUtil.getConnection();
String sql="insert into testclob values(?,?)";
st = con.prepareStatement(sql);
//赋值
st.setInt(1, 2);
//st.setString(2, "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd");
File file = new File("src/jdbccfg.properties");
FileReader reader = new FileReader(file);//得到一个文件读取器
st.setCharacterStream(2, reader, (int)file.length());//int jdk5, long jdk1.6+
//MYsql支持的长度有限 ,改成int类型就可以了
//long类型,可以给oracle用
st.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
JdbcUtil.release(null, st, con);
}
}
@Test //读取
public void testClobReader(){
Connection con = null;
PreparedStatement st =null;
ResultSet rs = null;
try {
con = JdbcUtil.getConnection();
String sql="select * from textclob where id=?";
st = con.prepareStatement(sql);
//赋值
st.setInt(1, 2);
//3.执行查询
rs = st.executeQuery();
if(rs.next()){
//说明结果集中有记录
Reader reader = rs.getCharacterStream("content");
FileWriter fw = new FileWriter("d:/jdbc.properties");
int len=-1;
char [] buffer = new char[1024];
while((len=reader.read(buffer))!=-1){
fw.write(buffer, 0, len);
}
//关闭流
fw.close();
reader.close();
}
} catch (Exception e) {
e.printStackTrace();
}finally{
JdbcUtil.release(null, st, con);
}
}
}