图片从接口读取后是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;
}

JDBC批量插入blob数据的更多相关文章

  1. 三种JDBC批量插入编程方法的比较

    JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等. 我用Mysql 5.1.5的JDBC driver 分别对三种比较常用的方法做了测试 方法一,使用PreparedStat ...

  2. JDBC批量插入数据优化,使用addBatch和executeBatch

    JDBC批量插入数据优化,使用addBatch和executeBatch SQL的批量插入的问题,如果来个for循环,执行上万次,肯定会很慢,那么,如何去优化呢? 解决方案:用 preparedSta ...

  3. jdbc批量插入

    分享牛,分享牛原创.有这样一个需求,文本文件中的数据批量的插入mysql,怎么用jdbc方式批量插入呢? jdbc默认提供了批量插入的方法,可能用一次就忘记了,这里做笔记记录一下jdbc批量插入吧. ...

  4. Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案

    转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1      背景 系统中需要批量生成单据数据到数据库表,所以采用 ...

  5. SQL-35 对于表actor批量插入如下数据,如果数据已经存在,请忽略,不使用replace操作

    题目描述 对于表actor批量插入如下数据,如果数据已经存在,请忽略,不使用replace操作CREATE TABLE IF NOT EXISTS actor (actor_id smallint(5 ...

  6. SQL-34 对于表actor批量插入如下数据

    题目描述 对于表actor批量插入如下数据CREATE TABLE IF NOT EXISTS actor (actor_id smallint(5) NOT NULL PRIMARY KEY,fir ...

  7. JDBC批量插入数据效率分析

    对于需要批量插入数据库操作JDBC有多重方式,本利从三个角度对Statement和PreparedStatement两种执行方式进行分析,总结较优的方案. 当前实现由如下条件: 执行数据库:Mysql ...

  8. MySQL:JDBC批量插入数据的效率

    平时使用mysql插入.查询数据都没有注意过效率,今天在for循环中使用JDBC插入1000条数据居然等待了一会儿 就来探索一下JDBC的批量插入语句对效率的提高 首先进行建表 create tabl ...

  9. jdbc批量插入数据

    //插入很多书(批量插入用法) public void insertBooks(List<Book> book) {   final List<Book> tempBook=b ...

随机推荐

  1. OAuth授权

    重新梳理下授权认证模式. OWIN OWIN的英文全称是Open Web Interface for .NET.OWIN是针对.NET平台的开放Web接口. https://blog.csdn.net ...

  2. 《挑战程序设计竞赛》1.6 轻松热身 POJ1852

    Ants Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12782   Accepted: 5596 Description ...

  3. java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x87<b

    实际开发中遇到的 情景: 解决方案:  复制的别人的博客,没测试, Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1 这个 ...

  4. IOS开发复习笔记(4)-TableView

    总结几个TableView常用的代码 1.初始化方面 static string CellIndetifier=@"cellIndetifier"; -(NSInteger)num ...

  5. code first 数据库无损迁移

    环境:vs2013+nuget Enable-Migrations -EnableAutomaticMigrations Update-Database

  6. A C Program to demonstrate adjacency list representation of graphs

    w Graph and its representations - GeeksforGeekshttp://www.geeksforgeeks.org/graph-and-its-representa ...

  7. Java的默认构造函数调用

    // 注意,这里不能是 public class OOO,否则编译无法通过,需把文件命名成 OOO.java class OOO { // 注意:如果不定义OOO(),那么Shapes(int i)编 ...

  8. 外部导入js(javascript)文件方法

    <script src="myScript.js"></script>

  9. 在cli命令行上显示当前数据库,以及查询表的行头信息

    在$HIVE_HOME/conf/hive-site.xml文件下加入以下配置文件 <property> <name>hive.cli.print.header</nam ...

  10. php mysqli扩展库之预处理操作

    分享下php使用mysqli扩展库进行预处理操作的二个例子,有意研究mysqli用法的朋友,可以参考学习下,一定会有所帮助的. 例1.使用mysqli扩展库的预处理技术 mysqli stmt 向数据 ...