如何检查数据库中是否存在表或列?

我正在尝试制作简单的Java代码,以检查MySQL DB中是否存在表和/或列。我应该使用Java代码进行检查还是生成一个SQL查询字符串并执行以进行检查?

编辑-

@ aleroot-

我尝试使用您的代码,如下所示。运行以下代码时,我看不到任何表或列。我只看到这个

Driver Loaded.

Got Connection.

我的数据库有很多数据库,表和列。我不知道为什么该程序可以正常工作。

import java.sql.Connection;

import java.sql.DatabaseMetaData;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

public class Tester {

static Connection conn;

static Statement st;

public static void main(String[] args) throws Exception {

try {

// Step 1: Load the JDBC driver.

System.out.println("Driver Loaded.");

// Step 2: Establish the connection to the database.

String url = "jdbc:mysql://localhost:3306/";

conn = DriverManager.getConnection(url, "cowboy", "123456");

System.out.println("Got Connection.");

st = conn.createStatement();

} catch (Exception e) {

System.err.println("Got an exception! ");

e.printStackTrace();

System.exit(0);

}

DatabaseMetaData md2 = conn.getMetaData();

ResultSet rsTables = md2.getColumns(null, null, "customers", "name");

if (rsTables.next()) {

System.out.println("Exists !");

}

}

}

回答:

要检查表是否存在,可以按以下方式使用DatabaseMetaData:

DatabaseMetaData md = connection.getMetaData();

ResultSet rs = md.getTables(null, null, "table_name", null);

if (rs.next()) {

//Table Exist

}

并检查是否存在一列,您可以通过类似的方式使用它:

DatabaseMetaData md = connection.getMetaData();

ResultSet rs = md.getColumns(null, null, "table_name", "column_name");

if (rs.next()) {

//Column in table exist

}

以上是 如何检查数据库中是否存在表或列? 的全部内容, 来源链接: utcz.com/qa/408315.html

回到顶部