clob(test) blob
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);
}
}
}
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);
}
}
}