package com.casic.birmm; import com.casic.birmm.util.ByteUtil; import com.casic.birmm.util.ConnectionManager; import org.apache.commons.dbutils.DbUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.ArrayListHandler; import org.apache.log4j.Logger; import java.sql.Connection; import java.sql.SQLException; import java.util.Base64; import java.util.List; public class UpdatePersonPhotoFromSQLServer { public static void main(String[] args) { Connection conn = null; Connection mysqlConn = null; Logger logger = Logger.getLogger(UpdatePersonPhotoFromSQLServer.class.getName()); String queryFaceImage = "SELECT ImageBytes FROM dbo.Image where Guid = '0aaf1511-23ee-4028-b261-7fb8e7aa7423'"; String updateStr = "UPDATE IRIS_PERSON_PHOTO SET PHOTO_DATA=? WHERE PERSON_ID=1210932145873489920"; try { conn = ConnectionManager.getSQLServerConnectionFromC3P0(); conn.setAutoCommit(false); mysqlConn = ConnectionManager.getMySQLConnectionFromC3P0(); mysqlConn.setAutoCommit(false); QueryRunner runner = new QueryRunner(); List<Object[]> tempList = (List<Object[]>) runner.query(conn, queryFaceImage, new ArrayListHandler()); System.out.println(tempList.size()); for (int i = 0; i < tempList.size(); i++) { Object[] person = tempList.get(i); String base64Str = Base64.getEncoder().encodeToString((byte[]) person[0]); logger.info("faceImage: " + "data:image/png;base64," + base64Str); // 更新iris_person_photo表 Object[] updatePhotoParams = new Object[1]; updatePhotoParams[0] = "data:image/png;base64," + base64Str; runner.update(mysqlConn, updateStr, updatePhotoParams); logger.info("\n"); } } catch (Exception ex) { ex.printStackTrace(); } finally { try { DbUtils.commitAndClose(mysqlConn); } catch (SQLException e) { e.printStackTrace(); } } } }