jp.primecloud.auto.tool.management.main.SQLMain.java Source code

Java tutorial

Introduction

Here is the source code for jp.primecloud.auto.tool.management.main.SQLMain.java

Source

/*
 * Copyright 2014 by SCSK Corporation.
 * 
 * This file is part of PrimeCloud Controller(TM).
 * 
 * PrimeCloud Controller(TM) is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 * 
 * PrimeCloud Controller(TM) is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with PrimeCloud Controller(TM). If not, see <http://www.gnu.org/licenses/>.
 */
package jp.primecloud.auto.tool.management.main;

import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import jp.primecloud.auto.tool.management.db.SQLExecuter;
import jp.primecloud.auto.tool.management.db.SQLExecuterFactory;

public class SQLMain {

    protected static Log log = LogFactory.getLog(SQLMain.class);

    public static void selectExecute(CommandLine commandLine) {
        String sql = commandLine.getOptionValue("sql");

        SQLExecuter sqlExecuter = new SQLExecuterFactory().createPCCSQLExecuter();

        if (commandLine.hasOption("columntype") && commandLine.hasOption("columnname")) {
            String columnName = commandLine.getOptionValue("columnname");
            String columnType = commandLine.getOptionValue("columntype");

            try {
                Object result = sqlExecuter.getColumn(sql, columnName, columnType);
                if (result == null) {
                    System.out.println("NULL");
                } else {
                    System.out.print(result.toString());
                }
            } catch (Exception e) {
                log.error("[" + sql + "] ??????", e);
                System.out.println("[" + sql + "] ??????");
                return;
            }
        } else {
            try {
                List<List<Object>> results = sqlExecuter.showColumn(sql);
                for (List<Object> columns : results) {
                    for (Object object : columns) {
                        if (object == null) {
                            object = "NULL";
                        }
                        System.out.print(object.toString() + " ");
                    }
                    System.out.println();
                }
            } catch (Exception e) {
                log.error("[" + sql + "] ??????", e);
                System.out.println("[" + sql + "] ??????");
                return;
            }
        }
    }

    @SuppressWarnings("unchecked")
    public static <T, V> List<T> selectExecuteWithResult(String sql, Class<T> clazz) throws Exception {
        SQLExecuter sqlExecuter = new SQLExecuterFactory().createPCCSQLExecuter();
        List<Map<String, Object>> selectResults = sqlExecuter.showColumns(sql);
        List<T> results = new ArrayList<T>();
        Constructor<?>[] constructors = clazz.getConstructors();
        for (int i = 0; i < selectResults.size(); i++) {
            Map<String, Object> rowMap = selectResults.get(i);
            T newEntity = (T) constructors[0].newInstance();
            BeanUtils.populate(newEntity, rowMap);
            results.add(newEntity);
        }
        return results;
    }

    public static void updateExecute(CommandLine commandLine) {

        String sql = commandLine.getOptionValue("sql");
        SQLExecuter sqlExecuter = new SQLExecuterFactory().createPCCSQLExecuter();

        try {
            sqlExecuter.execute(sql);
        } catch (Exception e) {
            log.error("[" + sql + "] ??????", e);
            System.out.println("[" + sql + "] ??????");
            return;
        }
    }

    public static void updateExecutePrepared(CommandLine commandLine) {
        String sql = commandLine.getOptionValue("sql");

        SQLExecuter sqlExecuter = new SQLExecuterFactory().createPCCSQLExecuter();
        String[] params = commandLine.getOptionValues("prepared");

        try {
            sqlExecuter.executePrepared(sql, params);
        } catch (Exception e) {
            log.error("[" + sql + "] ??????", e);
            System.out.println("[" + sql + "] ??????");
            return;
        }
    }

    public static void updateExecutePrepared(String sql, String[] params) {
        SQLExecuter sqlExecuter = new SQLExecuterFactory().createPCCSQLExecuter();
        try {
            sqlExecuter.executePrepared(sql, params);
        } catch (Exception e) {
            log.error("[" + sql + "] ??????", e);
            System.out.println("[" + sql + "] ??????");
            return;
        }
    }
}