package org.nhooo.example.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; public class TableNameOfColumnExample { private static final String URL = "jdbc:mysql://localhost/nhooo"; private static final String USERNAME = "root"; private static final String PASSWORD = ""; public static void main(String[] args) { try (Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD)) { Statement statement = connection.createStatement(); String query = "SELECT a.id, a.quantity, a.price, c.name " + "FROM order_details a " + "LEFT JOIN orders b ON a.order_id = b.id " + "LEFT JOIN products c on a.product_id = c.id"; ResultSet resultSet = statement.executeQuery(query); // 这里我们有一个使用多个表的查询,然后我们想要 //知道列属于哪个表。在里面 // ResultSetMetaData有一个getTableName()方法,可以 // 做这个功能。 ResultSetMetaData metadata = resultSet.getMetaData(); String tableName = metadata.getTableName(1); System.out.println("Table name of column `a.id` = " + tableName); tableName = metadata.getTableName(4); System.out.println("Table name of column `c.name` = " + tableName); } catch (SQLException e) { e.printStackTrace(); } } }
Maven依赖
<!-- https://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency>