// Path: cango-common/src/main/java/com/bella/cango/enums/DbType.java
// public enum DbType {
//     MYSQL(1, "com.mysql.jdbc.Driver"),
//     ORACLE(2, "oracle.jdbc.driver.OracleDriver"),
//     DRDS(3, "com.mysql.jdbc.Driver");
// 
//     private Integer code;
//     private String driver;
// 
//     DbType(Integer type, String driver) {
//         this.code = type;
//     }
// 
//     public Integer getCode() {
//         return code;
//     }
// 
//     public String getDriver() {
//         return driver;
//     }
// 
//     public boolean isOracle() {
//         return this.equals(ORACLE);
//     }
// 
// 
//     public boolean isMysql() {
//         return this.equals(MYSQL);
//     }
// 
//     public boolean isDRDS() {
//         return this.equals(DRDS);
//     }
// 
//     public DbType parse(Integer code) {
//         switch (code) {
//             case 1:
//                 return MYSQL;
//             case 2:
//                 return ORACLE;
//             case 3:
//                 return DRDS;
//             default:
//                 return null;
//         }
//     }
// }
// 
// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/common/db/meta/ColumnMeta.java
// public class ColumnMeta {
// 
//     private String name;
//     private int type;
// 
//     public ColumnMeta(String columnName, int columnType) {
//         this.name = StringUtils.upperCase(columnName);// 统一为大写
//         this.type = columnType;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public int getType() {
//         return type;
//     }
// 
//     public void setName(String name) {
//         this.name = StringUtils.upperCase(name);
//     }
// 
//     public void setType(int type) {
//         this.type = type;
//     }
// 
//     public ColumnMeta clone() {
//         return new ColumnMeta(this.name, this.type);
//     }
// 
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this, YuGongToStringStyle.DEFAULT_STYLE);
//     }
// 
//     @Override
//     public int hashCode() {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + ((name == null) ? 0 : name.hashCode());
//         result = prime * result + type;
//         return result;
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (this == obj) return true;
//         if (obj == null) return false;
//         if (getClass() != obj.getClass()) return false;
//         ColumnMeta other = (ColumnMeta) obj;
//         if (name == null) {
//             if (other.name != null) return false;
//         } else if (!name.equals(other.name)) return false;
//         if (type != other.type) return false;
//         return true;
//     }
// 
// }
// 
// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/exception/YuGongException.java
// public class YuGongException extends NestableRuntimeException {
// 
//     private static final long serialVersionUID = -654893533794556357L;
// 
//     public YuGongException(String errorCode) {
//         super(errorCode);
//     }
// 
//     public YuGongException(String errorCode, Throwable cause) {
//         super(errorCode, cause);
//     }
// 
//     public YuGongException(String errorCode, String errorDesc) {
//         super(errorCode + ":" + errorDesc);
//     }
// 
//     public YuGongException(String errorCode, String errorDesc, Throwable cause) {
//         super(errorCode + ":" + errorDesc, cause);
//     }
// 
//     public YuGongException(Throwable cause) {
//         super(cause);
//     }
// 
// 
// }


import com.bella.cango.enums.DbType;
import com.bella.cango.instance.oracle.common.db.meta.ColumnMeta;
import com.bella.cango.instance.oracle.exception.YuGongException;
import org.apache.commons.lang.StringUtils;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.ConnectionCallback;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.sql.Types;
import java.util.Collection;
import java.util.List;
package com.bella.cango.instance.oracle.common.utils;



public class YuGongUtils {

    public static boolean isEmpty(Collection collection) {
        return collection == null || collection.size() == 0;
    }

    public static boolean isNotEmpty(Collection collection) {
        return collection != null && collection.size() != 0;
    }

    /**
     * 返回字段名字的数组
     *
     * @param columns
     * @return
     */
// Path: cango-common/src/main/java/com/bella/cango/enums/DbType.java
// public enum DbType {
//     MYSQL(1, "com.mysql.jdbc.Driver"),
//     ORACLE(2, "oracle.jdbc.driver.OracleDriver"),
//     DRDS(3, "com.mysql.jdbc.Driver");
// 
//     private Integer code;
//     private String driver;
// 
//     DbType(Integer type, String driver) {
//         this.code = type;
//     }
// 
//     public Integer getCode() {
//         return code;
//     }
// 
//     public String getDriver() {
//         return driver;
//     }
// 
//     public boolean isOracle() {
//         return this.equals(ORACLE);
//     }
// 
// 
//     public boolean isMysql() {
//         return this.equals(MYSQL);
//     }
// 
//     public boolean isDRDS() {
//         return this.equals(DRDS);
//     }
// 
//     public DbType parse(Integer code) {
//         switch (code) {
//             case 1:
//                 return MYSQL;
//             case 2:
//                 return ORACLE;
//             case 3:
//                 return DRDS;
//             default:
//                 return null;
//         }
//     }
// }
// 
// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/common/db/meta/ColumnMeta.java
// public class ColumnMeta {
// 
//     private String name;
//     private int type;
// 
//     public ColumnMeta(String columnName, int columnType) {
//         this.name = StringUtils.upperCase(columnName);// 统一为大写
//         this.type = columnType;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public int getType() {
//         return type;
//     }
// 
//     public void setName(String name) {
//         this.name = StringUtils.upperCase(name);
//     }
// 
//     public void setType(int type) {
//         this.type = type;
//     }
// 
//     public ColumnMeta clone() {
//         return new ColumnMeta(this.name, this.type);
//     }
// 
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this, YuGongToStringStyle.DEFAULT_STYLE);
//     }
// 
//     @Override
//     public int hashCode() {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + ((name == null) ? 0 : name.hashCode());
//         result = prime * result + type;
//         return result;
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (this == obj) return true;
//         if (obj == null) return false;
//         if (getClass() != obj.getClass()) return false;
//         ColumnMeta other = (ColumnMeta) obj;
//         if (name == null) {
//             if (other.name != null) return false;
//         } else if (!name.equals(other.name)) return false;
//         if (type != other.type) return false;
//         return true;
//     }
// 
// }
// 
// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/exception/YuGongException.java
// public class YuGongException extends NestableRuntimeException {
// 
//     private static final long serialVersionUID = -654893533794556357L;
// 
//     public YuGongException(String errorCode) {
//         super(errorCode);
//     }
// 
//     public YuGongException(String errorCode, Throwable cause) {
//         super(errorCode, cause);
//     }
// 
//     public YuGongException(String errorCode, String errorDesc) {
//         super(errorCode + ":" + errorDesc);
//     }
// 
//     public YuGongException(String errorCode, String errorDesc, Throwable cause) {
//         super(errorCode + ":" + errorDesc, cause);
//     }
// 
//     public YuGongException(Throwable cause) {
//         super(cause);
//     }
// 
// 
// }


// Path: cango-instance/src/main/java/com/bella/cango/instance/oracle/common/utils/YuGongUtils.java
import com.bella.cango.enums.DbType;
import com.bella.cango.instance.oracle.common.db.meta.ColumnMeta;
import com.bella.cango.instance.oracle.exception.YuGongException;
import org.apache.commons.lang.StringUtils;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.ConnectionCallback;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.sql.DataSource;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.sql.Types;
import java.util.Collection;
import java.util.List;

package com.bella.cango.instance.oracle.common.utils;



public class YuGongUtils {

    public static boolean isEmpty(Collection collection) {
        return collection == null || collection.size() == 0;
    }

    public static boolean isNotEmpty(Collection collection) {
        return collection != null && collection.size() != 0;
    }

    /**
     * 返回字段名字的数组
     *
     * @param columns
     * @return
     */
    public static String[] getColumnNameArray(List<ColumnMeta> columns) {