package org.seasar.doma.internal.apt.dao;

/** */
@javax.annotation.Generated(value = { "Doma", "@VERSION@" }, date = "1970-01-01T09:00:00.000+0900")
public class EmpDtoParameterDaoImpl extends org.seasar.doma.internal.jdbc.dao.AbstractDao implements org.seasar.doma.internal.apt.dao.EmpDtoParameterDao {

    static {
        org.seasar.doma.internal.Artifact.validateVersion("@VERSION@");
    }

    private static final java.lang.reflect.Method __method1 = org.seasar.doma.internal.jdbc.dao.AbstractDao.__getDeclaredMethod(org.seasar.doma.internal.apt.dao.EmpDtoParameterDao.class, "insert", org.seasar.doma.internal.apt.entity.EmpDto.class);

    private static final java.lang.reflect.Method __method2 = org.seasar.doma.internal.jdbc.dao.AbstractDao.__getDeclaredMethod(org.seasar.doma.internal.apt.dao.EmpDtoParameterDao.class, "insert", java.util.List.class);

    /** */
    public EmpDtoParameterDaoImpl() {
        super(new org.seasar.doma.internal.apt.dao.MyConfig());
    }

    /**
     * @param connection the connection
     */
    public EmpDtoParameterDaoImpl(java.sql.Connection connection) {
        super(new org.seasar.doma.internal.apt.dao.MyConfig(), connection);
    }

    /**
     * @param dataSource the dataSource
     */
    public EmpDtoParameterDaoImpl(javax.sql.DataSource dataSource) {
        super(new org.seasar.doma.internal.apt.dao.MyConfig(), dataSource);
    }

    /**
     * @param config the configuration
     */
    protected EmpDtoParameterDaoImpl(org.seasar.doma.jdbc.Config config) {
        super(config);
    }

    /**
     * @param config the configuration
     * @param connection the connection
     */
    protected EmpDtoParameterDaoImpl(org.seasar.doma.jdbc.Config config, java.sql.Connection connection) {
        super(config, connection);
    }

    /**
     * @param config the configuration
     * @param dataSource the dataSource
     */
    protected EmpDtoParameterDaoImpl(org.seasar.doma.jdbc.Config config, javax.sql.DataSource dataSource) {
        super(config, dataSource);
    }

    @Override
    public java.lang.String select(org.seasar.doma.internal.apt.entity.EmpDto dto) {
        entering("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl", "select", dto);
        try {
            if (dto == null) {
                throw new org.seasar.doma.DomaNullPointerException("dto");
            }
            org.seasar.doma.internal.jdbc.query.SqlFileSelectQuery __query = new org.seasar.doma.internal.jdbc.query.SqlFileSelectQuery();
            __query.setConfig(config);
            __query.setSqlFilePath("META-INF/org/seasar/doma/internal/apt/dao/EmpDtoParameterDao/select.sql");
            __query.addParameter("dto", org.seasar.doma.internal.apt.entity.EmpDto.class, dto);
            __query.setCallerClassName("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl");
            __query.setCallerMethodName("select");
            __query.setResultEnsured(false);
            __query.setResultMappingEnsured(false);
            __query.setQueryTimeout(-1);
            __query.setMaxRows(-1);
            __query.setFetchSize(-1);
            __query.prepare();
            org.seasar.doma.internal.jdbc.command.SelectCommand<java.lang.String> __command = new org.seasar.doma.internal.jdbc.command.SelectCommand<java.lang.String>(__query, new org.seasar.doma.internal.jdbc.command.BasicSingleResultHandler<java.lang.String>(new org.seasar.doma.wrapper.StringWrapper(), false));
            java.lang.String __result = __command.execute();
            __query.complete();
            exiting("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl", "select", __result);
            return __result;
        } catch (java.lang.RuntimeException __e) {
            throwing("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl", "select", __e);
            throw __e;
        }
    }

    @Override
    public int insert(org.seasar.doma.internal.apt.entity.EmpDto dto) {
        entering("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl", "insert", dto);
        try {
            if (dto == null) {
                throw new org.seasar.doma.DomaNullPointerException("dto");
            }
            org.seasar.doma.internal.jdbc.query.SqlFileInsertQuery __query = new org.seasar.doma.internal.jdbc.query.SqlFileInsertQuery();
            __query.setMethod(__method1);
            __query.setConfig(config);
            __query.setSqlFilePath("META-INF/org/seasar/doma/internal/apt/dao/EmpDtoParameterDao/insert.sql");
            __query.addParameter("dto", org.seasar.doma.internal.apt.entity.EmpDto.class, dto);
            __query.setCallerClassName("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl");
            __query.setCallerMethodName("insert");
            __query.setQueryTimeout(-1);
            __query.prepare();
            org.seasar.doma.internal.jdbc.command.InsertCommand __command = new org.seasar.doma.internal.jdbc.command.InsertCommand(__query);
            int __result = __command.execute();
            __query.complete();
            exiting("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl", "insert", __result);
            return __result;
        } catch (java.lang.RuntimeException __e) {
            throwing("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl", "insert", __e);
            throw __e;
        }
    }

    @Override
    public int[] insert(java.util.List<org.seasar.doma.internal.apt.entity.EmpDto> dto) {
        entering("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl", "insert", dto);
        try {
            if (dto == null) {
                throw new org.seasar.doma.DomaNullPointerException("dto");
            }
            org.seasar.doma.internal.jdbc.query.SqlFileBatchInsertQuery<org.seasar.doma.internal.apt.entity.EmpDto> __query = new org.seasar.doma.internal.jdbc.query.SqlFileBatchInsertQuery<org.seasar.doma.internal.apt.entity.EmpDto>(org.seasar.doma.internal.apt.entity.EmpDto.class);
            __query.setMethod(__method2);
            __query.setConfig(config);
            __query.setElements(dto);
            __query.setSqlFilePath("META-INF/org/seasar/doma/internal/apt/dao/EmpDtoParameterDao/insert.sql");
            __query.setParameterName("dto");
            __query.setCallerClassName("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl");
            __query.setCallerMethodName("insert");
            __query.setQueryTimeout(-1);
            __query.setBatchSize(10);
            __query.prepare();
            org.seasar.doma.internal.jdbc.command.BatchInsertCommand __command = new org.seasar.doma.internal.jdbc.command.BatchInsertCommand(__query);
            int[] __result = __command.execute();
            __query.complete();
            exiting("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl", "insert", __result);
            return __result;
        } catch (java.lang.RuntimeException __e) {
            throwing("org.seasar.doma.internal.apt.dao.EmpDtoParameterDaoImpl", "insert", __e);
            throw __e;
        }
    }

}
