处理CLOB/BLOB类型(处理大型数据)
方式:
a、存储路径
通过jdbc存储文件路径,然后根据IO操作处理
例如:储存:jdbc将F:\Program Files (x86)\WeGame\ifs.dll文件以字符串形式“F:\Program Files (x86)\WeGame”储存到数据库中
获取:1、获取该路径“F:\Program Files (x86)\WeGame” 2、IO
缺点:严格遵循路径,加入文件更换路径就会失效
b、
CLOB:大文本数据(小说——》数据)
BLOB:二进制
clob:
存:
1、先通过pstmt的占位符替换小说内容
2、再通过pstmt.setCharacterStream(2, reader,(int)file.length());将上一步的占位符替换为小说流(第三个数需要是int类型,表长度)
File file = new File("C:\\Users\\14463\\Desktop\\新建文本文档.txt");
InputStream in = new FileInputStream(file);//文件
Reader reader = new InputStreamReader(in,"UTF-8");
取:Reader reader =rs.getCharacterStream("num2");获取字段名
Reader reader =rs.getCharacterStream("num2");
//向文件写入数据 用file writer类
FileWriter wirter = new FileWriter("G:\\Study\\nic\\txt.txt");
//缓冲区
char[] chs = new char[1024];
int len =-1;
while((len = reader.read(chs)) != -1) {
wirter.write(chs,0,len);
}
wirter.close( );
reader.close();
}
方式:
a、存储路径
通过jdbc存储文件路径,然后根据IO操作处理
例如:储存:jdbc将F:\Program Files (x86)\WeGame\ifs.dll文件以字符串形式“F:\Program Files (x86)\WeGame”储存到数据库中
获取:1、获取该路径“F:\Program Files (x86)\WeGame” 2、IO
缺点:严格遵循路径,加入文件更换路径就会失效
b、
CLOB:大文本数据(小说——》数据)
BLOB:二进制
clob:
存:
1、先通过pstmt的占位符替换小说内容
2、再通过pstmt.setCharacterStream(2, reader,(int)file.length());将上一步的占位符替换为小说流(第三个数需要是int类型,表长度)
File file = new File("C:\\Users\\14463\\Desktop\\新建文本文档.txt");
InputStream in = new FileInputStream(file);//文件
Reader reader = new InputStreamReader(in,"UTF-8");
取:Reader reader =rs.getCharacterStream("num2");获取字段名
Reader reader =rs.getCharacterStream("num2");
//向文件写入数据 用file writer类
FileWriter wirter = new FileWriter("G:\\Study\\nic\\txt.txt");
//缓冲区
char[] chs = new char[1024];
int len =-1;
while((len = reader.read(chs)) != -1) {
wirter.write(chs,0,len);
}
wirter.close( );
reader.close();
}
blob
存:
Connection cont= DriverManager.getConnection(url, user, password);
String Sql = "insert into blob values(?,?) ";
pstmt= cont.prepareStatement(Sql);
pstmt.setInt(1, 1);
File file = new File("G:\\CloudMusic\\mm.mp3");
InputStream in = new FileInputStream(file);//文件
pstmt.setBinaryStream(2, in,file.length());
int count = pstmt.executeUpdate();
if (count > 0) {
System.out.println("操作成功");
}
取:
Connection cont= DriverManager.getConnection(url, user, password);
String Sql = "select mv from blob where id = ? ";
pstmt= cont.prepareStatement(Sql);
pstmt.setInt(1, 1);
rs = pstmt.executeQuery();
if(rs.next()) {
InputStream input = rs.getBinaryStream("mv");
OutputStream out = new FileOutputStream("文件");
byte[] chs = new byte[100];
int len = -1;
while ((len=input.read(chs)) != -1) {
out.write(chs, 0, len);
}
out.close();
input.close();
}

浙公网安备 33010602011771号