目录

1如何查取数据库中表的字段

1、如何查取数据库中表的字段

场景再现:

想要根据数据库中,表的字段生成 有序的字符串,用于自动插入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();
        }

    }

}

测试结果:

https://i-blog.csdnimg.cn/blog_migrate/848bd209b69f39737599d3390969bfef.png

知识扩展:

基本所有的数据库查询表结构用到:

 describe book

https://i-blog.csdnimg.cn/blog_migrate/3d0c2d45738160a4dc9b3bbce63f85a3.png

DB2的查询表结构的命令是

 describe table book

例如:

https://i-blog.csdnimg.cn/blog_migrate/7e11901b7d9630fb5e36382c1252a173.png