package cn.jdbctest;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
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.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class ClobTest {
/**
* @param args
*/
Connection conn=null;
PreparedStatement pstat=null;
ResultSet rs=null;
public static String driver="com.jdbc.mysql.Driver";
public static String url="jdbc:mysql://localhost:3306/test";
public static String user="root";
public static String password="root";
static{
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
throw new IncompatibleClassChangeError();
}
}
public void testSql(){
try {
conn=DriverManager.getConnection(url, user, password);
String sql="select * from usertable";
pstat=conn.prepareStatement(sql);
rs=pstat.executeQuery();
while(rs.next()){
Clob clob=rs.getClob(2);
Reader reader=clob.getCharacterStream();
File file = new File("text.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,buff.length);
}
writer.close();
reader.close();
}
} catch (SQLException e) {
e.printStackTrace();
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
rs.close();
pstat.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void test1(){
try {
conn=DriverManager.getConnection(url, user, password);
String sql="insert into usertable(id,text) values(?,?)";
pstat=conn.prepareStatement(sql);
File file=new File("d:/log.ext");
BufferedReader buffReader=new BufferedReader(new FileReader(file));
pstat.setInt(1, 1);
pstat.setClob(2, buffReader);
pstat.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{
try {
pstat.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
在mysql中有个TEXT数据类型可以存储大数据,对大数据的处理要用到流的读写操作