场景再现:
想要根据数据库中,表的字段生成 有序的字符串,用于自动插入sql时,避免数据插错列。
解决思路:
网上搜索了一下发现都是用describe查询表结构的,并没有解决方案。突然意识到:既然describe的输出也是表的形式,大不了我用 describe查询后,再单独取它的第一列!
所以解决代码如下:
package com.neo.web;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class temp {
public static void main(String[] args) throws SQLException {
Connection conn = null;
Statement stat = null;
ResultSet resultSet = null;
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/heima";
String username = "root";
String password = "root";
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
stat = conn.createStatement();
String sql = "describe product";
resultSet = stat.executeQuery(sql);
//开始获取表字段
List<String> list = new ArrayList<>();//用于存放表字段
while (resultSet.next()) {
list.add(resultSet.getString(1));
}
System.out.println("pause");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
stat.close();
conn.close();
}
}
}
测试结果:
。
知识扩展:
基本所有的数据库查询表结构用到:
describe book
DB2的查询表结构的命令是
describe table book
例如: