Java Tutorial/Database/Column

Материал из Java эксперт
Перейти к: навигация, поиск

Designated column"s table name

   <source lang="java">

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; public class Main {

 private static final String DRIVER = "com.mysql.jdbc.Driver";
 private static final String URL = "jdbc:mysql://localhost/testdb";
 private static final String USERNAME = "root";
 private static final String PASSWORD = "";
 public static void main(String[] args) throws Exception {
   Class.forName(DRIVER);
   Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
   Statement statement = connection.createStatement();
   String query = "SELECT a.id, a.username, a.country_id, b.country_name " + "FROM users a "
       + "LEFT JOIN countries b ON a.country_id = b.id";
   ResultSet resultSet = statement.executeQuery(query);
   ResultSetMetaData metadata = resultSet.getMetaData();
   String tableName = metadata.getTableName(1);
   System.out.println("Table name of column "id" = " + tableName);
   tableName = metadata.getTableName(4);
   System.out.println("Table name of column "country name" = " + tableName);
 }

}</source>





Get column names of a table using ResultSetMetaData

   <source lang="java">

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.util.ArrayList; public class Main {

 private static final String DRIVER = "com.mysql.jdbc.Driver";
 private static final String URL = "jdbc:mysql://localhost/testdb";
 private static final String USERNAME = "root";
 private static final String PASSWORD = "";
 public static void main(String[] args) throws Exception {
   Class.forName(DRIVER);
   Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
   Statement statement = connection.createStatement();
   ResultSet resultSet = statement.executeQuery("SELECT * FROM users");
   ResultSetMetaData metadata = resultSet.getMetaData();
   int columnCount = metadata.getColumnCount();
   ArrayList<String> columns = new ArrayList<String>();
   for (int i = 1; i < columnCount; i++) {
     String columnName = metadata.getColumnName(i);
     columns.add(columnName);
   }
   while (resultSet.next()) {
     for (String columnName : columns) {
       String value = resultSet.getString(columnName);
       System.out.println(columnName + " = " + value);
     }
   }
 }

}</source>





Get column"s precision and scale value

   <source lang="java">

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; public class Main {

 private static final String DRIVER = "com.mysql.jdbc.Driver";
 private static final String URL = "jdbc:mysql://localhost/testdb";
 private static final String USERNAME = "root";
 private static final String PASSWORD = "";
 public static void main(String[] args) throws Exception {
   Class.forName(DRIVER);
   Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
   Statement statement = connection.createStatement();
   String query = "SELECT stock_id, name, price FROM stocks";
   ResultSet resultSet = statement.executeQuery(query);
   ResultSetMetaData metadata = resultSet.getMetaData();
   int precision = metadata.getPrecision(3);
   int scale = metadata.getScale(3);
   System.out.println("Precision: " + precision);
   System.out.println("Scale    : " + scale);
 }

}</source>





If a table column can have a null value or not

   <source lang="java">

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; public class Main {

 private static final String DRIVER = "com.mysql.jdbc.Driver";
 private static final String URL = "jdbc:mysql://localhost/testdb";
 private static final String USERNAME = "root";
 private static final String PASSWORD = "";
 public static void main(String[] args) throws Exception {
   Class.forName(DRIVER);
   Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
   Statement statement = connection.createStatement();
   ResultSet resultSet = statement.executeQuery("SELECT id, username FROM users");
   ResultSetMetaData metadata = resultSet.getMetaData();
   int nullability = metadata.isNullable(1);
   if (nullability == ResultSetMetaData.columnNullable) {
     System.out.println("Columns ID can have a null value");
   } else if (nullability == ResultSetMetaData.columnNoNulls) {
     System.out.println("Columns ID does not allowed to have a null value");
   } else if (nullability == ResultSetMetaData.columnNullableUnknown) {
     System.out.println("Nullability unknown");
   }
 }

}</source>