JDBC批量插入blob数据
2024-10-19 21:21:06
图片从接口读取后是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;
}
最新文章
- 记sql server 2008R2 两台服务器 使用非默认端口的发布订阅
- 深入浅出Symfony2 - 结合MongoDB开发LBS应用
- uglifyjs2压缩混淆js文件
- angular ng-model类型格式转化
- 模式串匹配之KMP算法
- Ztack学习笔记(2)-系统初始化分析
- gif修改背景透明
- c语言与c++基础知识
- 【开源java游戏框架libgdx专题】-07-文件处理
- Java中ArrayList和LinkedList差别
- c#委托与事件(详解)
- CentOS 7 源码编译安装 Mysql 5.7
- 完美分割字符串,实现字符串的splict功能
- Redis学习笔记~Twenproxy所起到的作用
- [Swift]LeetCode373. 查找和最小的K对数字 | Find K Pairs with Smallest Sums
- BATCH、事务、CLOB、BLOB
- Java思维理清思路
- System.InvalidOperationException:“线程间操作无效: 从不是创建控件“txtPortName02”的线程访问它。”
- Installing Ruby 2.2 on Centos7
- MySQL与Spring事务隔离级别