当前位置:主页 > 查看内容

java jdbc 操作 blob 类型的数据

发布时间:2021-07-22 00:00| 位朋友查看

简介:1 MySQL BLOB类型MySQL中 BLOB是一个二进制大型对象 是一个可以存储大量数据的容器 它能容纳不同大小的数据。 插入BLOB类型的数据必须使用PreparedStatement 因为BLOB类型的数据无法使用字符串拼接写的。 MySQL的四种BLOB类型(除了在存储的最大信息量上不同……
1 MySQL BLOB类型MySQL中 BLOB是一个二进制大型对象 是一个可以存储大量数据的容器 它能容纳不同大小的数据。
插入BLOB类型的数据必须使用PreparedStatement 因为BLOB类型的数据无法使用字符串拼接写的。
MySQL的四种BLOB类型(除了在存储的最大信息量上不同外 他们是等同的)
实际使用中根据需要存入的数据大小定义不同的BLOB类型。需要注意的是 如果存储的文件过大 数据库的性能会下降。如果在指定了相关的Blob类型以后 还报错 xxx too large 那么在mysql的安装目录下 找my.ini文件加上如下的配置参数 max_allowed_packet 16M。同时注意 修改了my.ini文件之后 需要重新启动mysql服务

2 向数据表中插入大数据类型
//获取连接
Connection conn JDBCUtils.getConnection();
String sql insert into customers(name,email,birth,photo)values(?,?,?,?) 
PreparedStatement ps conn.prepareStatement(sql);
//java fhadmin.org
// 填充占位符
ps.setString(1, 张强 
ps.setString(2, 123 126.com 
ps.setDate(3, new Date(new java.util.Date().getTime()));
// 操作Blob类型的变量
FileInputStream fis new FileInputStream( xhq.png 
ps.setBlob(4, fis);
ps.execute();
fis.close();
JDBCUtils.closeResource(conn, ps);

3 修改数据表中的Blob类型字段
Connection conn JDBCUtils.getConnection();
String sql update customers set photo ? where id ? 
PreparedStatement ps conn.prepareStatement(sql);
//java fhadmin.org
// 填充占位符
// 操作Blob类型的变量
FileInputStream fis new FileInputStream( coffee.png 
ps.setBlob(1, fis);
ps.setInt(2, 25);
ps.execute();
fis.close();
JDBCUtils.closeResource(conn, ps);

4 从数据表中读取大数据类型
//java fhadmin.org
String sql SELECT id, name, email, birth, photo FROM customer WHERE id ? 
conn getConnection();
ps conn.prepareStatement(sql);
ps.setInt(1, 8);
rs ps.executeQuery();
if(rs.next()){
 Integer id rs.getInt(1);
 String name rs.getString(2);
 String email rs.getString(3);
 Date birth rs.getDate(4);
 Customer cust new Customer(id, name, email, birth);
 System.out.println(cust); 
 //读取Blob类型的字段
 Blob photo rs.getBlob(5);
 InputStream is photo.getBinaryStream();
 OutputStream os new FileOutputStream( c.jpg 
 byte [] buffer new byte[1024];
 int len 
 while((len is.read(buffer)) ! -1){
 os.write(buffer, 0, len);
 JDBCUtils.closeResource(conn, ps, rs);
 if(is ! null){
 is.close();
 if(os ! null){
 os.close();
}

?


本文转自网络,原文链接:https://developer.aliyun.com/article/785578
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:springboot 整合 shiro 安全框架 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐