JDBC批量插入blob数据

图片从接口读取后是base64的字符串,所以转成byte数组进行保存.

我们一般保存数据的话,都是基本数据,对于这些图片数据大部分会将图片保存成Blob,Clob等.

Blob存储的是二进制对象数据(用plsql可以查看图片)

Clob存储的是字符串对象数据(一般存储图片的base64)

下面是将JDBC存储图片成blob的方法:

    /**
     * 数据批量插入
     * @param poolName
     * @param humanList
     * @param sql
     * @return
     */
    public int executeInsertSQL(String poolName,List<HumanBo> humanList, String sql) {
        Connection conn = null;
        PreparedStatement prep = null;
        int ret = 0;
        try {
            conn = ConnectionPoolManager.getInstance().getConnection(poolName);
            prep = conn.prepareStatement(sql);
            for(HumanBo humanBo : humanList){
                prep.setString(1, humanBo.getId());
                prep.setString(2, humanBo.getName());
                prep.setString(3, humanBo.getIdNumber());
                byte[] imageUrl = Base64.decode(humanBo.getHumanPic());
                ByteArrayInputStream inputstr = new ByteArrayInputStream(imageUrl);
                prep.setBinaryStream(4, inputstr, imageUrl.length);
                prep.setString(5, humanBo.getFlag());
                prep.setString(6, humanBo.getType());
                prep.setDate(7, humanBo.getCreateTime());
                prep.addBatch();
            }
            int[] result = prep.executeBatch();
            ret = result.length;
        } catch (Exception e) {
            logger.error("执行数据库操作出错, SQL语句:" + sql, e);
        } finally {
            closeConn(poolName, conn, prep, null);
        }
        return ret;
    }

 

转载于:https://www.cnblogs.com/fxust/p/7837592.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值