com.demo.db.dao.impl.DriverAuditDaoImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.demo.db.dao.impl.DriverAuditDaoImpl.java

Source

package com.demo.db.dao.impl;

import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;

import org.apache.commons.dbutils.BasicRowProcessor;
import org.apache.commons.dbutils.BeanProcessor;
import org.apache.commons.dbutils.GenerousBeanProcessor;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.RowProcessor;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.demo.db.dao.DriverAuditDao;
import com.demo.db.druid.DbHelper;
import com.demo.model.DriverAudit;
import com.demo.utils.StringUtils;

public class DriverAuditDaoImpl implements DriverAuditDao {
    private static final Logger logger = LoggerFactory.getLogger(DriverAuditDaoImpl.class);
    private DbHelper dbHelper = new DbHelper();

    @Override
    public DriverAudit insert(DriverAudit driverAudit) {
        QueryRunner queryRunner = dbHelper.getRunner();
        try {
            queryRunner.insert(dbHelper.getConnection(),
                    "insert into demo_driver_audit(uuid, driver_id) values(UNHEX(?), ?)",
                    new ScalarHandler<String>(), new Object[] { driverAudit.getUuid(), driverAudit.getDriverId() });
        } catch (SQLException e) {
            String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
            logger.error("{}??{}", methodName, driverAudit);
            throw new RuntimeException("??", e);
        }
        return driverAudit;
    }

    @Override
    public int update(DriverAudit driverAudit) {
        QueryRunner queryRunner = dbHelper.getRunner();

        try {
            List<String> columnList = new LinkedList<String>();
            List<Object> valueList = new LinkedList<Object>();
            if (null != driverAudit.getName() && driverAudit.getName() == 0) {
                columnList.add("name");
                valueList.add(driverAudit.getName());
                columnList.add("name_reject");
                valueList.add("");
            }
            if (null != driverAudit.getSfzA() && driverAudit.getSfzA() == 0) {
                columnList.add("sfz_a");
                valueList.add(driverAudit.getSfzA());
                columnList.add("sfz_a_reject");
                valueList.add("");
            }
            if (null != driverAudit.getSfzB() && driverAudit.getSfzB() == 0) {
                columnList.add("sfz_b");
                valueList.add(driverAudit.getSfzB());
                columnList.add("sfz_b_reject");
                valueList.add("");
            }
            if (null != driverAudit.getJszA() && driverAudit.getJszA() == 0) {
                columnList.add("jsz_a");
                valueList.add(driverAudit.getJszA());
                columnList.add("jsz_a_reject");
                valueList.add("");
            }
            if (null != driverAudit.getXszA() && driverAudit.getXszA() == 0) {
                columnList.add("xsz_a");
                valueList.add(driverAudit.getXszA());
                columnList.add("xsz_a_reject");
                valueList.add("");
            }
            if (null != driverAudit.getLicensePlate() && driverAudit.getLicensePlate() == 0) {
                columnList.add("license_plate");
                valueList.add(driverAudit.getLicensePlate());
                columnList.add("license_plate_reject");
                valueList.add("");
            }
            if (columnList.size() == 0) {
                return 0;
            }
            for (int i = 0; i < columnList.size(); i++) {
                String strColumn = columnList.get(i);
                columnList.set(i, strColumn + "=?");
            }
            final String strUpdateSet = StringUtils.join(columnList.toArray(), ",");
            if (StringUtils.isBlank(strUpdateSet)) {
                throw new RuntimeException("");
            }
            valueList.add(driverAudit.getDriverId());
            StringBuilder sb = new StringBuilder();
            sb.append("update demo_driver_audit set ");
            sb.append(strUpdateSet);
            sb.append(" where cell=?");
            int rows = queryRunner.update(dbHelper.getConnection(), sb.toString(), valueList.toArray());
            return rows;
        } catch (SQLException e) {
            logger.error("?? ?{}", driverAudit);
            throw new RuntimeException("??", e);
        }
    }

    @Override
    public DriverAudit getByDriverId(Long driverId) {
        QueryRunner queryRunner = dbHelper.getRunner();

        DriverAudit driverAudit = null;
        BeanProcessor beanProcessor = new GenerousBeanProcessor();
        RowProcessor rowProcessor = new BasicRowProcessor(beanProcessor);
        try {
            driverAudit = queryRunner.query("select * from demo_driver_audit where driver_id = ?",
                    new BeanHandler<DriverAudit>(DriverAudit.class, rowProcessor), driverId);
            return driverAudit;
        } catch (SQLException e) {
            logger.error("??? ?{}", driverId);
            throw new RuntimeException("???", e);
        }
    }
}