Newer
Older
irisDatabase / src / com / casic / birmm / UpdatePersonPhotoFromSQLServer.java
TAN YUE on 9 Oct 2020 2 KB 20201008 初始建立
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();
            }
        }
    }
}