mysql蛇形转驼峰_MySQL导出表结构相关字段以及把字段由下划线转驼峰命名

importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.LinkedHashMap;importjava.util.Map;importcom.alibaba.fastjson.JSONObject;importcom.mysql.jdbc.Connection;/*** 工具类

* MySQL中以“_”分割的列名格式化为驼峰命名的列名*/

public classFormatDbColumns {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) throwsSQLException,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 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 staticString camelCaseName(String underscoreName) {

StringBuilder result= newStringBuilder();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);

}

}

}

}returnresult.toString();

}

}


版权声明:本文为weixin_36467992原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。