在此示例中,我们将展示如何使用ResultSetMetaData.isNullable()method来确定列是否可以null。此方法返回的值在的常数来定义的整数ResultSetMetaData.columnNullable,ResultSetMetaData.columnNoNulls和ResultSetMetaData.columnNullableUnknown。
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 IsNullableExample { 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(); ResultSet resultSet = statement.executeQuery( "SELECT isbn, title, published_year, price FROM books"); // ResultSetMetaData是所有元数据相关的地方 // 存储结果集的信息。 ResultSetMetaData metadata = resultSet.getMetaData(); int nullable = metadata.isNullable(1); // 检查列的可空状态(`isbn`) if (nullable == ResultSetMetaData.columnNullable) { System.out.println("`isbn` can have a null value."); } else if (nullable == ResultSetMetaData.columnNoNulls) { System.out.println("`isbn` does not allowed to have a " + "null value."); } else if (nullable == ResultSetMetaData.columnNullableUnknown) { System.out.println("Nullability unknown."); } } 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>