zoukankan      html  css  js  c++  java
  • MySQL导出表结构相关字段以及把字段由下划线转驼峰命名


    SELECT
    COLUMN_COMMENT 中文名, UPPER(COLUMN_NAME) 字段名, UPPER(DATA_TYPE) 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE 是否为空 FROM INFORMATION_SCHEMA.COLUMNS where table_schema ='shwmm' AND table_name = 'gis_interface_veh_his_gps_data'

    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.LinkedHashMap;
    import java.util.Map;
    
    import com.alibaba.fastjson.JSONObject;
    import com.mysql.jdbc.Connection;
    
    /**
     * 工具类
     * MySQL中以“_”分割的列名格式化为驼峰命名的列名
     */
    public class FormatDbColumns {
        static final String DB_URL = "jdbc:mysql://localhost:3306/shwmm";
        // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称
        static final String USER = "root";
        static final String PASS = "root";
    
        public static void main(String[] args) throws SQLException,Exception{
            Connection conn = null;
            Statement stat = null;
    
            // 注册驱动
            Class.forName("com.mysql.jdbc.Driver");
    
            // 创建链接
            conn = (Connection) DriverManager.getConnection(DB_URL,USER,PASS);
    
            String str = "am_alarm_detail";
    
            // 执行查询
            stat = conn.createStatement();
            String sql = "select LOWER(COLUMN_NAME) as columnName from information_schema.COLUMNS where table_name = '"+str+"'";
            ResultSet rs = stat.executeQuery(sql);
            // 输出查询结果
            int i = 0;
            Map<String,String> map = new LinkedHashMap<>();
            while(rs.next()){
                i++;
                String a = rs.getString("columnName");
                String b= camelCaseName(a);
                map.put(b,"xxx");
                System.out.println(b);
            }
    
            System.out.println(JSONObject.toJSONString(map));
            System.out.println(i);
            // 关闭
            try {
                if (rs != null) {
                    rs.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (stat != null) {
                        stat.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    try {
                        if (conn != null) {
                            conn.close();
                        }
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
        public static String camelCaseName(String underscoreName) {
            StringBuilder result = new StringBuilder();
            if (underscoreName != null && underscoreName.length() > 0) {
                boolean flag = false;
                for (int i = 0; i < underscoreName.length(); i++) {
                    char ch = underscoreName.charAt(i);
                    if ("_".charAt(0) == ch) {
                        flag = true;
                    } else {
                        if (flag) {
                            result.append(Character.toUpperCase(ch));
                            flag = false;
                        } else {
                            result.append(ch);
                        }
                    }
                }
            }
            return result.toString();
    
        }
    }
  • 相关阅读:
    JQuery Ajax实例总结
    【水】HDU 2099——整除的尾数
    hdu 1540 Tunnel Warfare(线段树区间统计)
    python学习教程(九)sqlalchemy框架的modern映射
    Maven 实现Struts2注解配置步骤详解
    消息机4
    hdu4708
    【每日一摩斯】-Troubleshooting: High CPU Utilization (164768.1)
    poj1860 解题报告
    机器学习理论与实战(十六)概率图模型04
  • 原文地址:https://www.cnblogs.com/zplogo/p/9871089.html
Copyright © 2011-2022 走看看