package com.util;

import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Date;
import java.util.Scanner;

/**
 * Created by Gaojie on 2018/10/2 11:37.
 * 通过数据库表自动生成JavaBean Dao.
 * 暂无发现BUG 学生一枚 才疏学浅 如若复制代码需要改写的位置已标红;
 * 弃用功能:百度翻译
 */
public class Automatically {
    private static String packageOutPath = "E:\\IDEA工程\\1701\\1001_自动生成Dao\\src";//指定实体生成所在包的路径
    private static String authorName = "GaoJie";//作者名字
    private static String tablename = "shop-depot-commodity-supplier-goodType";//表名 用-隔开

    private static String[] colnames; // 列名数组
    private static String[] colTypes; //列名类型数组

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] split = tablename.split("-");//分割表名数组
        for (int i = 0; i < split.length; i++) {//遍历
            tablename = split[i];
            //生成JavaBean
            generateJavaBean();
            //生成Dao 接口
            generateDao();
            //生成Dao 实现
            generateDaoImpl();
        }
    }

    /**
     * 功能:生成JavaBean
     */
    private static void generateJavaBean() {
        //创建连接
        Connection con = null;
        PreparedStatement ps = null;
        //查要生成JavaBean的表
        String sql = "select * from " + tablename;//SQL语句
        try {
            con = Dbmanger.getConn();//获取连接 这里的Dbmanger是我的工具类 getConn()用于获取con 若使用请改写为自己的工具类
            ps = con.prepareStatement(sql);
            ResultSetMetaData rsmd = ps.getMetaData();
            int size = rsmd.getColumnCount();   //返回列数
            colnames = new String[size];
            colTypes = new String[size];
            for (int i = 0; i < size; i++) {//得到列名和列类型
                colnames[i] = rsmd.getColumnName(i + 1);//列名
                colTypes[i] = rsmd.getColumnTypeName(i + 1);//列数据库类型名
            }
            String content = parse(colnames, colTypes);//得到JavaBean代码

            File directory = new File(packageOutPath + "\\com\\pojo");
            directory.mkdirs();

            String outputPath = packageOutPath + "\\com\\pojo\\" + initcap(tablename) + ".java";
            PrintWriter pw = new PrintWriter(new FileWriter(outputPath));
            pw.println(content);

            pw.flush();
            pw.close();

        } catch (SQLException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 功能:生成JavaBean代码
     *
     * @param colnames
     * @param colTypes
     * @return
     */
    private static String parse(String[] colnames, String[] colTypes) throws Exception {
        StringBuffer sb = new StringBuffer();

        sb.append("package " + "com.pojo" + ";\r\n");
        sb.append("\r\n");
        //注释部分
        sb.append("/**\r\n");
        //String translateResult = getTranslateResult(tablename);
        sb.append("* " + tablename + " " + " 实体类\r\n");
        sb.append("* " + new Date() + " " + authorName + "\r\n");
        sb.append("*/ \r\n");
        //实体部分
        sb.append("\r\n\r\npublic class " + initcap(tablename) + " {\r\n");
        processAllAttrs(sb);//属性
        processAllMethod(sb);//get set方法
        sb.append("}\r\n");

        return sb.toString();
    }

    /**
     * 功能:生成属性
     *
     * @param sb
     */
    private static void processAllAttrs(StringBuffer sb) {

        for (int i = 0; i < colnames.length; i++) {
            try {
                //加上翻译
                //String translateResult = getTranslateResult(colnames[i]);
                sb.append("\tprivate " + sqlType2JavaType(colTypes[i]) + " " + colnames[i] + ";" + "\r\n");
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
        sb.append("\r\n");
    }

    /**
     * 功能:生成set get方法
     *
     * @param sb
     */
    private static void processAllMethod(StringBuffer sb) {
        //无参 有参
        sb.append("\tpublic " + initcap(tablename) + "(){\r\n");
        sb.append("\t}\r\n\r\n");

        StringBuffer sb2 = new StringBuffer();
        for (int i = 0; i < colnames.length; i++) {
            sb2.append(sqlType2JavaType(colTypes[i]) + " " + colnames[i] + ",");
        }
        String s = sb2.toString();
        s = s.substring(0, s.length() - 1);
        sb.append("\tpublic " + initcap(tablename) + "(" + s + "){\r\n");
        StringBuffer sb3 = new StringBuffer();
        for (int i = 0; i < colnames.length; i++) {
            sb3.append("\t\tthis." + colnames[i] + " = " + colnames[i] + ";\r\n");
        }
        String s2 = sb3.toString();
        sb.append(s2);
        sb.append("\t}\r\n");

        //toString
        sb.append("\tpublic " + "String toString(){\r\n\t\treturn ");
        StringBuffer sb4 = new StringBuffer();
        for (int i = 0; i < colnames.length; i++) {
            sb4.append("\"," + colnames[i] + "=\" + " + colnames[i] + " + \r\n\t\t");
        }
        String s3 = sb4.toString();
        s3 = s3.substring(0, 1) + s3.substring(2, s3.length() - 7) + ";";
        sb.append(s3);
        sb.append("\r\n\t}\r\n");

        //set get
        for (int i = 0; i < colnames.length; i++) {
            sb.append("\tpublic void set" + initcap(colnames[i]) + "(" + sqlType2JavaType(colTypes[i]) + " " +
                    colnames[i] + "){\r\n");
            sb.append("\t\tthis." + colnames[i] + "=" + colnames[i] + ";\r\n");
            sb.append("\t}\r\n\r\n");
            sb.append("\tpublic " + sqlType2JavaType(colTypes[i]) + " get" + initcap(colnames[i]) + "(){\r\n");
            sb.append("\t\treturn " + colnames[i] + ";\r\n");
            sb.append("\t}\r\n\r\n");
        }


    }

    /**
     * Dao
     * 功能:生成Dao接口 创建文件
     */
    public static void generateDao() {
        File directory = new File(packageOutPath + "\\com\\dao");
        directory.mkdirs();//创建目录
        try {
            String content = parseDao();//代码
            String outputPath = packageOutPath + "\\com\\dao\\" + initcap(tablename) + "Dao.java";
            FileWriter fw = new FileWriter(outputPath);
            PrintWriter pw = new PrintWriter(fw);
            pw.println(content);
            pw.flush();
            pw.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    /**
     * 功能:生成Dao接口主体代码
     *
     * @param
     * @return
     * @throws Exception
     */
    private static String parseDao() {
        StringBuffer sb = new StringBuffer();
        sb.append("package com.dao;\r\n");
        sb.append("\r\n");
        sb.append("import com.pojo." + initcap(tablename) + ";");
        sb.append("\r\n");
        sb.append("import java.util.List;");
        sb.append("\r\n");
        //注释部分
        sb.append("   /**\r\n");
        sb.append("    * " + tablename + "  Dao接口类\r\n");
        sb.append("    * " + new Date() + " " + authorName + "\r\n");
        sb.append("    */ \r\n");
        //实体部分
        sb.append("\r\n\r\npublic interface " + initcap(tablename) + "Dao{\r\n");
        processDaoAllMethod(sb);//生成Dao所有方法
        sb.append("}\r\n");

        //System.out.println(sb.toString());
        return sb.toString();
    }

    /**
     * 功能:生成Dao接口的方法
     *
     * @param sb
     */
    private static void processDaoAllMethod(StringBuffer sb) {
        String[] str = {"增加", "删除", "修改", "查询", "根据id进行查询"};
        String[] str2 = {"insert", "delete", "update", "selectAll", "selectAllById"};

        for (int i = 0; i < str.length; i++) {
            sb.append("\r\n\t");
            sb.append("// " + str[i]);
            sb.append("\r\n");
            if (str[i].equals("查询")) {
                sb.append("\tList " + str2[i] + "();");
            } else if (str[i].equals("根据id进行查询")) {
                sb.append("\tList " + str2[i] + "(" + initcap(tablename) + " " + tablename + ");");
            } else {
                sb.append("\tvoid " + str2[i] + "(" + initcap(tablename) + " " + tablename + ");");
            }
            sb.append("\t\r\n");
        }

    }

    /**
     * 功能:生成DaoService接口实现
     */
    public static void generateDaoImpl() {
        File directory = new File(packageOutPath + "\\com\\dao\\impl");
        directory.mkdirs();//创建目录
        try {
            String content = parseDaoImpl(directory);//代码
            String outputPath = packageOutPath + "\\com\\dao\\impl\\" + initcap(tablename) + initcap("Impl") + ".java";
            FileWriter fw = new FileWriter(outputPath);
            PrintWriter pw = new PrintWriter(fw);
            pw.println(content);
            pw.flush();
            pw.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 功能:生成daoimpl主体代码
     *
     * @param directory
     * @return
     */
    private static String parseDaoImpl(File directory) {
        StringBuffer sb = new StringBuffer();
        sb.append("package com.dao.impl;\r\n");
        sb.append("\r\n");
        sb.append("import java.util.List;");
        sb.append("\r\n");
        sb.append("import java.util.ArrayList;");
        sb.append("\r\n");
        sb.append("import com.util.Dbmanger;");
        sb.append("\r\n");
        sb.append("import java.sql.*;");
        sb.append("\r\n");
        sb.append("import com.dao." + initcap(tablename) + "Dao;");
        sb.append("\r\n");
        sb.append("import com.pojo." + initcap(tablename) + ";");
//        sb.append("\r\n");
//        sb.append("import java.util.Scanner;");
        sb.append("\r\n");
        sb.append("\r\n");
        //注释部分
        sb.append("   /**\r\n");
        sb.append("    * " + tablename + " 接口实现类\r\n");
        sb.append("    * " + new Date() + " " + authorName + "\r\n");
        sb.append("    */ \r\n");
        //实体部分
        sb.append("\r\n\r\npublic class " + initcap(tablename) + "Impl" + " implements " + initcap(tablename) + "Dao{\r\n");
        processDaoImplAllMethod(sb);//生成Dao所有方法
        sb.append("}\r\n");

        //System.out.println(sb.toString());
        return sb.toString();
    }

    /**
     * 功能:生成Dao实现类方法
     *
     * @param sb
     * @param
     */
    private static void processDaoImplAllMethod(StringBuffer sb) {

        String[] str = {"增加", "删除", "修改", "查询", "根据id进行查询"};
        String[] str2 = {"insert", "delete", "update", "selectAll", "selectAllById"};
        for (int i = 0; i < str.length; i++) {
            sb.append("\r\n\t");
            sb.append("// " + str[i]);
            sb.append("\r\n");
            if (str[i].equals("增加")) {
                sb.append("\tpublic void " + str2[i] + "(" + initcap(tablename) + " " + tablename + ") {\r\n");
                DaoImplInsert(sb);
                sb.append("\t}\r\n");
            } else if (str[i].equals("删除")) {
                sb.append("\tpublic void " + str2[i] + "(" + initcap(tablename) + " " + tablename + ") {\r\n");
                DaoImplDelete(sb);
                sb.append("\t}\r\n");
            } else if (str[i].equals("修改")) {
                sb.append("\tpublic void " + str2[i] + "(" + initcap(tablename) + " " + tablename + ") {\r\n");
                DaoImplUpdate(sb);
                sb.append("\t}\r\n");
            } else if (str[i].equals("查询")) {
                sb.append("\tpublic List " + str2[i] + "() {\r\n");
                DaoImplSelectAll(sb);
                sb.append("\t}\r\n");
            } else if (str[i].equals("根据id进行查询")) {
                sb.append("\tpublic List " + str2[i] + "(" + initcap(tablename) + " " + tablename + ") {\r\n");
                DaoImplSelectAllById(sb);
                sb.append("\t}\r\n");
            }
            sb.append("\t\r\n");
        }
    }

    /**
     * 增加
     *
     * @param sb
     */
    private static void DaoImplInsert(StringBuffer sb) {
        sb.append("\t\tConnection con = Dbmanger.getConn();\r\n");//获取连接 如若使用请改写为自己获取con的工具类
        sb.append("\t\tString sql = \"INSERT INTO " + tablename + " (");
        StringBuffer temporary = new StringBuffer();
        for (int i = 0; i < colnames.length; i++) {
            temporary.append(colnames[i] + ",");
        }
        sb.append(temporary.substring(0, temporary.length() - 1));
        sb.append(")VALUES (");
        StringBuffer temporary2 = new StringBuffer();
        for (int i = 0; i < colnames.length; i++) {
            temporary2.append("?,");
        }
        sb.append(temporary2.substring(0, temporary2.length() - 1) + ")\";");
        sb.append("\r\n\t\t");
        sb.append("PreparedStatement ps = null;");
        sb.append("\r\n\t\t");
        sb.append("try {");
        sb.append("\r\n\t\t\t");
        sb.append("ps = con.prepareStatement(sql);");
        for (int i = 0; i < colnames.length; i++) {
            sb.append("\r\n\t\t\t");
            sb.append("ps.set" + initcap(sqlType2JavaType(colTypes[i])) + "(" + (i + 1) + ", " + tablename + ".get" + initcap(colnames[i]) + "());");
        }
        sb.append("\r\n\t\t\t");
        sb.append("ps.executeUpdate();");
        sb.append("\r\n\t\t");
        sb.append("} catch (SQLException e) {");
        sb.append("\r\n\t\t\t");
        sb.append("e.printStackTrace();");
        sb.append("\r\n\t\t");
        sb.append("} finally {");
        sb.append("\r\n\t\t\t");
        sb.append("try {");
        sb.append("\r\n\t\t\t\t");
        sb.append("ps.close();");
        sb.append("\r\n\t\t\t\t");
        sb.append("con.close();");
        sb.append("\r\n\t\t\t");
        sb.append("} catch (SQLException e) {");
        sb.append("\r\n\t\t\t\t");
        sb.append("e.printStackTrace();");
        sb.append("\r\n\t\t\t");
        sb.append("}\r\n\t\t}\r\n");
    }

    /**
     * 删除
     *
     * @param sb
     */
    private static void DaoImplDelete(StringBuffer sb) {
        sb.append("\t\tConnection con = Dbmanger.getConn();\r\n");//获取连接 如若使用请改写为自己获取con的工具类
        sb.append("\t\tString sql = \"DELETE FROM " + tablename + " WHERE " + colnames[0] + " = ?\";");
        sb.append("\r\n\t\t");
        sb.append("PreparedStatement ps = null;");
        sb.append("\r\n\t\t");
        sb.append("try {");
        sb.append("\r\n\t\t\t");
        sb.append("ps = con.prepareStatement(sql);");

        sb.append("\r\n\t\t\t");
        sb.append("ps.set" + initcap(sqlType2JavaType(colTypes[0])) + "(" + (0 + 1) + ", " + tablename + ".get" + initcap(colnames[0]) + "());");

        sb.append("\r\n\t\t\t");
        sb.append("ps.executeUpdate();");
        sb.append("\r\n\t\t");
        sb.append("} catch (SQLException e) {");
        sb.append("\r\n\t\t\t");
        sb.append("e.printStackTrace();");
        sb.append("\r\n\t\t");
        sb.append("} finally {");
        sb.append("\r\n\t\t\t");
        sb.append("try {");
        sb.append("\r\n\t\t\t\t");
        sb.append("ps.close();");
        sb.append("\r\n\t\t\t\t");
        sb.append("con.close();");
        sb.append("\r\n\t\t\t");
        sb.append("} catch (SQLException e) {");
        sb.append("\r\n\t\t\t\t");
        sb.append("e.printStackTrace();");
        sb.append("\r\n\t\t\t");
        sb.append("}\r\n\t\t}\r\n");
    }

    /**
     * 修改
     *
     * @param sb
     */
    private static void DaoImplUpdate(StringBuffer sb) {
        sb.append("\t\tConnection con = Dbmanger.getConn();\r\n");//获取连接 如若使用请改写为自己获取con的工具类
        sb.append("\t\tString sql = \"UPDATE "+tablename+" SET ");
        StringBuffer temporary = new StringBuffer();
        for (int i = 0; i < colnames.length; i++) {
            temporary.append(colnames[i]+" = ?,");
        }
        sb.append(temporary.substring(0,temporary.length()-1)+" WHERE "+colnames[0]+" = ?\";");
        sb.append("\r\n\t\t");
        sb.append("PreparedStatement ps = null;");
        sb.append("\r\n\t\t");
        sb.append("try {");
        sb.append("\r\n\t\t\t");
        sb.append("ps = con.prepareStatement(sql);");

        for (int i = 0; i < colnames.length; i++) {
            sb.append("\r\n\t\t\t");
            sb.append("ps.set" + initcap(sqlType2JavaType(colTypes[i])) + "(" + (i + 1) + ", " + tablename + ".get" + initcap(colnames[i]) + "());");
        }
        sb.append("\r\n\t\t\t");
        sb.append("ps.set" + initcap(sqlType2JavaType(colTypes[0])) + "(" + (colnames.length + 1) + ", " + tablename + ".get" + initcap(colnames[0]) + "());");

        sb.append("\r\n\t\t\t");
        sb.append("ps.executeUpdate();");
        sb.append("\r\n\t\t");
        sb.append("} catch (SQLException e) {");
        sb.append("\r\n\t\t\t");
        sb.append("e.printStackTrace();");
        sb.append("\r\n\t\t");
        sb.append("} finally {");
        sb.append("\r\n\t\t\t");
        sb.append("try {");
        sb.append("\r\n\t\t\t\t");
        sb.append("ps.close();");
        sb.append("\r\n\t\t\t\t");
        sb.append("con.close();");
        sb.append("\r\n\t\t\t");
        sb.append("} catch (SQLException e) {");
        sb.append("\r\n\t\t\t\t");
        sb.append("e.printStackTrace();");
        sb.append("\r\n\t\t\t");
        sb.append("}\r\n\t\t}\r\n");
    }

    /**
     * 查询所有
     *
     * @param sb
     */
    private static void DaoImplSelectAll(StringBuffer sb) {
        sb.append("\t\tList<"+initcap(tablename)+"> list = new ArrayList<"+initcap(tablename)+">();\r\n");//获取连接
        sb.append("\t\tConnection con = Dbmanger.getConn();\r\n");//获取连接 如若使用请改写为自己获取con的工具类
        sb.append("\t\tString sql = \"SELECT ");
        StringBuffer temporary = new StringBuffer();
        for (int i = 0; i < colnames.length; i++) {
            temporary.append(colnames[i] + ",");
        }
        sb.append(temporary.substring(0, temporary.length() - 1));
        sb.append(" FROM "+tablename+"\";");
        StringBuffer temporary2 = new StringBuffer();
        sb.append("\r\n\t\t");
        sb.append("PreparedStatement ps = null;");
        sb.append("\r\n\t\t");
        sb.append("ResultSet rs = null;");
        sb.append("\r\n\t\t");
        sb.append("try {");
        sb.append("\r\n\t\t\t");
        sb.append("ps = con.prepareStatement(sql);");
        sb.append("\r\n\t\t\t");
        sb.append("rs = ps.executeQuery();");

        sb.append("\r\n\t\t\t");
        sb.append("while (rs.next()) {");
        sb.append("\r\n\t\t\t\t");
        sb.append(initcap(tablename)+" "+tablename+" = new "+initcap(tablename)+"();");
        for (int i = 0; i < colnames.length; i++) {
            sb.append("\r\n\t\t\t\t");
            sb.append(tablename+".set"+initcap(colnames[i])+"(rs.get"+initcap(sqlType2JavaType(colTypes[i]))+"(\""+colnames[i]+"\"));");
        }
        sb.append("\r\n\t\t\t\t");
        sb.append("list.add("+tablename+");");
        sb.append("\r\n\t\t\t");
        sb.append("}");

        sb.append("\r\n\t\t");
        sb.append("} catch (SQLException e) {");
        sb.append("\r\n\t\t\t");
        sb.append("e.printStackTrace();");
        sb.append("\r\n\t\t");
        sb.append("} finally {");
        sb.append("\r\n\t\t\t");
        sb.append("try {");
        sb.append("\r\n\t\t\t\t");
        sb.append("rs.close();");
        sb.append("\r\n\t\t\t\t");
        sb.append("ps.close();");
        sb.append("\r\n\t\t\t\t");
        sb.append("con.close();");
        sb.append("\r\n\t\t\t");
        sb.append("} catch (SQLException e) {");
        sb.append("\r\n\t\t\t\t");
        sb.append("e.printStackTrace();");
        sb.append("\r\n\t\t\t");
        sb.append("}");
        sb.append("\r\n\t\t");
        sb.append("}");
        sb.append("\r\n\t\t");
        sb.append("return list;\r\n");
    }

    /**
     * 根据id查询
     *
     * @param sb
     */
    private static void DaoImplSelectAllById(StringBuffer sb) {
        sb.append("\t\tList<"+initcap(tablename)+"> list = new ArrayList<"+initcap(tablename)+">();\r\n");//获取连接
        sb.append("\t\tConnection con = Dbmanger.getConn();\r\n");//获取连接 如若使用请改写为自己获取con的工具类
        sb.append("\t\tString sql = \"SELECT ");
        StringBuffer temporary = new StringBuffer();
        for (int i = 0; i < colnames.length; i++) {
            temporary.append(colnames[i] + ",");
        }
        sb.append(temporary.substring(0, temporary.length() - 1));
        sb.append(" FROM "+tablename+" WHERE "+colnames[0]+" = ?\";");
        StringBuffer temporary2 = new StringBuffer();
        sb.append("\r\n\t\t");
        sb.append("PreparedStatement ps = null;");
        sb.append("\r\n\t\t");
        sb.append("ResultSet rs = null;");
        sb.append("\r\n\t\t");
        sb.append("try {");
        sb.append("\r\n\t\t\t");
        sb.append("ps = con.prepareStatement(sql);");
        sb.append("\r\n\t\t\t");
        sb.append("ps.set" + initcap(sqlType2JavaType(colTypes[0])) + "(" + (0 + 1) + ", " + tablename + ".get" + initcap(colnames[0]) + "());");
        sb.append("\r\n\t\t\t");
        sb.append("rs = ps.executeQuery();");

        sb.append("\r\n\t\t\t");
        sb.append("while (rs.next()) {");
        sb.append("\r\n\t\t\t\t");
        sb.append(initcap(tablename)+" "+tablename+"2= new "+initcap(tablename)+"();");
        for (int i = 0; i < colnames.length; i++) {
            sb.append("\r\n\t\t\t\t");
            sb.append(tablename+"2.set"+initcap(colnames[i])+"(rs.get"+initcap(sqlType2JavaType(colTypes[i]))+"(\""+colnames[i]+"\"));");
        }
        sb.append("\r\n\t\t\t\t");
        sb.append("list.add("+tablename+"2);");
        sb.append("\r\n\t\t\t");
        sb.append("}");

        sb.append("\r\n\t\t");
        sb.append("} catch (SQLException e) {");
        sb.append("\r\n\t\t\t");
        sb.append("e.printStackTrace();");
        sb.append("\r\n\t\t");
        sb.append("} finally {");
        sb.append("\r\n\t\t\t");
        sb.append("try {");
        sb.append("\r\n\t\t\t\t");
        sb.append("rs.close();");
        sb.append("\r\n\t\t\t\t");
        sb.append("ps.close();");
        sb.append("\r\n\t\t\t\t");
        sb.append("con.close();");
        sb.append("\r\n\t\t\t");
        sb.append("} catch (SQLException e) {");
        sb.append("\r\n\t\t\t\t");
        sb.append("e.printStackTrace();");
        sb.append("\r\n\t\t\t");
        sb.append("}");
        sb.append("\r\n\t\t");
        sb.append("}");
        sb.append("\r\n\t\t");
        sb.append("return list;\r\n");
    }

    /*************************************
     * 功能:将输入字符串的首字母改成大写
     *
     * @param str
     * @return
     */
    private static String initcap(String str) {

        char[] ch = str.toCharArray();
        if (ch[0] >= 'a' && ch[0] <= 'z') {
            ch[0] = (char) (ch[0] - 32);
        }

        return new String(ch);
    }

    /**
     * 功能:获得列的数据类型
     *
     * @param sqlType
     * @return
     */
    private static String sqlType2JavaType(String sqlType) {

        if (sqlType.equalsIgnoreCase("bit")) {
            return "boolean";
        } else if (sqlType.equalsIgnoreCase("tinyint")) {
            return "byte";
        } else if (sqlType.equalsIgnoreCase("smallint")) {
            return "short";
        } else if (sqlType.equalsIgnoreCase("int")) {
            return "int";
        } else if (sqlType.equalsIgnoreCase("bigint")) {
            return "long";
        } else if (sqlType.equalsIgnoreCase("float")) {
            return "float";
        } else if (sqlType.equalsIgnoreCase("decimal") || sqlType.equalsIgnoreCase("numeric")
                || sqlType.equalsIgnoreCase("real") || sqlType.equalsIgnoreCase("money")
                || sqlType.equalsIgnoreCase("smallmoney")) {
            return "double";
        } else if (sqlType.equalsIgnoreCase("varchar") || sqlType.equalsIgnoreCase("char")
                || sqlType.equalsIgnoreCase("nvarchar") || sqlType.equalsIgnoreCase("nchar")
                || sqlType.equalsIgnoreCase("text")) {
            return "String";
        } else if (sqlType.equalsIgnoreCase("datetime")) {
            return "Date";
        } else if (sqlType.equalsIgnoreCase("image")) {
            return "Blod";
        }

        return null;
    }

//    /**
//     * 功能:翻译字符串
//     *
//     * @param urlString
//     * @return
//     * @throws Exception
//     */
//    private static String getTranslateResult(String urlString) throws Exception {
//        final String PreUrl = "http://www.baidu.com/s?wd=";                        //百度搜索URL
//        final String TransResultStartFlag = "<span class=\"op_dict_text2\">";      //翻译开始标签
//        final String TransResultEndFlag = "</span>";                               //翻译结束标签
//        URL url = new URL(PreUrl + urlString);            //生成完整的URL
//        // 打开URL
//        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//        // 得到输入流,即获得了网页的内容
//        BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
//        String preLine = "";
//        String line;
//        int flag = 1;
//        // 读取输入流的数据,并显示
//        String content = "";          //翻译结果
//        while ((line = reader.readLine()) != null) {            //获取翻译结果的算法
//            if (preLine.indexOf(TransResultStartFlag) != -1 && line.indexOf(TransResultEndFlag) == -1) {
//                content += line.replaceAll(" | ", "");   //去电源代码上面的半角以及全角字符
//                break;
//            }
//            if (line.indexOf(TransResultEndFlag) != -1) {
//                flag = 1;
//            }
//            if (flag == 1) {
//                preLine = line;
//            }
//        }
//        return content;//返回翻译结果
//    }
}
10-03 18:46