案例1-导出Blob字段图像

需求:

有一张单表存储着图片(图片使用Blob字段)以及图片的相关信息,需求是从数据库中将这些Blob字段内容保存为图片文件,文件名为图片的相关信息。

环境

数据库:Oracle本地:Windows工具:Hutool-db模块

编码

数据库配置:src/main/resources/config/db.setting

# -------------------------------------------------------------
# ----- Setting File with UTF8-----
# ----- 数据库配置文件 -----
# -------------------------------------------------------------
#JDBC url,必须
url = jdbc:oracle:thin:@192.168.1.1:1521/orcl
#用户名,必须
user = test
#密码,必须,如果密码为空,请填写 pass =
pass = test

代码:PicTransfer.java

public class PicTransfer {
    private static SqlRunner runner = SqlRunner.create();
    private static String destDir = "f:/pic";
    public static void main(String[] args) throws SQLException {
        runner.find(
                CollUtil.newArrayList("NAME", "TYPE", "GROUP", "PIC"),
                Entity.create("PIC_INFO").set("TYPE", 1),
                new RsHandler<String>(){
                    @Override
                    public String handle(ResultSet rs) throws SQLException {
                        while(rs.next()){
                            save(rs);
                        }
                        return null;
                    }
                }
        );
    }
    private static void save(ResultSet rs) throws SQLException{
        String path = StrUtil.format("{}/{}-{}.jpg", destDir, rs.getString("NAME"), rs.getString("GROUP"));
        FileUtil.writeFromStream(rs.getBlob("PIC").getBinaryStream(), path);
    }
}

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

results matching ""

    No results matching ""