Java DatabaseMetaData supportsUnion() 方法及示例。


SQL UNION 子句/運算子用於組合兩個或多個 SELECT 語句的結果,而不返回任何重複的行。

要使用此 UNION 子句,每個 SELECT 語句必須具有

  • 相同數量的選定列
  • 相同數量的列表達式
  • 相同的資料型別,並且
  • 它們的順序相同

但它們不必具有相同的長度。

UNION 子句的基本語法如下:

語法

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
UNION
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

DatabaseMetaData 介面的 supportsUnion() 方法用於確定底層資料庫是否支援 SQL UNION 子句/運算子。

此方法返回一個布林值,即:

  • True,當底層資料庫支援 SQL UNION 子句/運算子時。
  • False,當底層資料庫不支援 SQL UNION 子句/運算子時。

要確定底層資料庫是否支援 SQL GROUP BY 子句:

  • 確保您的資料庫正在執行。
  • 使用 DriverManager 類的 registerDriver() 方法註冊驅動程式。傳遞與底層資料庫對應的驅動程式類的物件。
  • 使用 DriverManager 類的 getConnection() 方法獲取連線物件。將資料庫的 URL、使用者名稱和資料庫使用者的密碼作為字串變數傳遞。
  • 使用 Connection 介面的 getMetaData() 方法獲取當前連線的 DatabaseMetaData 物件。
  • 最後,呼叫 ResultSetMetaData 介面的 supportsUnion() 方法,並將返回的值儲存在布林變數(例如 bool)中。如果此值為 true,則底層資料庫支援 SQL UNION 子句/運算子,否則不支援。

以下 JDBC 程式建立與 MySQL 資料庫的連線,並確定並列印它是否支援 SQL UNION 子句/運算子。

示例

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseMetadata_supportsUnion {
   public static void main(String args[]) throws SQLException {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String url = "jdbc:mysql:///mydatabase";
      Connection con = DriverManager.getConnection(url, "root", "password");
      System.out.println("Connection established......");
      //Retrieving the meta data object
      DatabaseMetaData metaData = con.getMetaData();
      //Determining whether the underlying database supports SQL UNION clause
      boolean bool = metaData.supportsUnion();
      if(bool) {
         System.out.println("Underlying database supports SQL UNION clause");
      } else {
         System.out.println("Underlying database doesnot support SQL UNION clause");
      }
   }
}

輸出

Connection established......
Underlying database supports SQL UNION clause

更新於: 2019-07-30

58 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.