Jdbc中大文本类型的处理
时间:2021-07-01 10:21:17
帮助过:9人阅读
com.loaderman.demo.e_longtext;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.Reader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import com.loaderman.demo.utils.JdbcUtil;
import org.junit.Test;
public class App_blob {
// 全局参数
private Connection con;
private Statement stmt;
private PreparedStatement pstmt;
private ResultSet rs;
@Test
// 1. 二进制数据类型 ( 写longblob)
public void testSaveText() {
String sql = "insert into test(img) values(?)"
;
try {
// 连接
con =
JdbcUtil.getConnection();
// pstmt 对象
pstmt =
con.prepareStatement(sql);
// 获取图片流
InputStream in = App_text.
class.getResourceAsStream("7.jpg"
);
pstmt.setBinaryStream(1
, in);
// 执行保存图片
pstmt.execute();
// 关闭
in.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
JdbcUtil.closeAll(con, pstmt, null);
}
}
@Test
// 2. 读取大文本数据类型 ( 读longblob)
public void testGetAsText() {
String sql = "select img from test where id=2;"
;
try {
// 连接
con =
JdbcUtil.getConnection();
// pstmt 对象
pstmt =
con.prepareStatement(sql);
// 读取
rs =
pstmt.executeQuery();
if (rs.next()) {
// 获取图片流
InputStream in = rs.getBinaryStream("img"
);
// 图片输出流
FileOutputStream out =
new FileOutputStream(
new File("c://1.jpg"
));
int len = -1
;
byte b[] =
new byte[1024
];
while ((len = in.read(b)) != -1
) {
out.write(b, 0
, len);
}
// 关闭
out.close();
in.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JdbcUtil.closeAll(con, pstmt, null);
}
}
}
package com.loaderman.demo.e_longtext;
import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import com.loaderman.demo.utils.JdbcUtil;
import org.junit.Test;
public class App_text {
// 全局参数
private Connection con;
private Statement stmt;
private PreparedStatement pstmt;
private ResultSet rs;
@Test
// 1. 保存大文本数据类型 ( 写longtext)
public void testSaveText() {
String sql = "insert into test(content) values(?)";
try {
// 连接
con = JdbcUtil.getConnection();
// pstmt 对象
pstmt = con.prepareStatement(sql);
// 设置参数
// 先获取文件路径
String path = App_text.class.getResource("tips.txt").getPath();
FileReader reader = new FileReader(new File(path));
pstmt.setCharacterStream(1, reader);
// 执行sql
pstmt.executeUpdate();
// 关闭
reader.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
JdbcUtil.closeAll(con, pstmt, null);
}
}
@Test
// 2. 读取大文本数据类型 ( 读longtext)
public void testGetAsText() {
String sql = "select * from test;";
try {
// 连接
con = JdbcUtil.getConnection();
// pstmt 对象
pstmt = con.prepareStatement(sql);
// 读取
rs = pstmt.executeQuery();
if (rs.next()) {
// 获取长文本数据, 方式1:
//Reader r = rs.getCharacterStream("content");
// 获取长文本数据, 方式2:
System.out.print(rs.getString("content"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JdbcUtil.closeAll(con, pstmt, null);
}
}
}
Jdbc中大文本类型的处理
标签:rest mysql数据库 输出流 使用 处理 lob new oracle rom