気の向くままに辿るIT/ICT/IoT
SQL用API

JDBC/Java Database Connectivity

ホーム前へ次へ
JDBCとは?

JDBC/Java Database Connectivity

JDBCとは

 JDBC/Java Database Connectivityは、Cベースの汎用APIであるODBC/Open Database ConnectivityをベースとしてつくられたJavaでデータベース(DBRDB)に接続する際に利用される汎用APIです。

JDBCドライバ

 JDBCもODBC同様、JDBCドライバとなるJavaソースコードを書く必要があります。

 JavaでDBアクセスする際にはjava.sqlと接続するDBドライバのクラスをimportで取り込み、DB接続に利用するドライバクラスとドライバメソッドを実装し、main関数内では例外処理をtry/catchで捕捉します。

#import java.sql.*;
#import oracle.jdbc.driver.*;    ←RDBがoracleの場合

Public class func_driver {
  func_driver( ) {
 
  }
  Public static void main( String argv[ ] )
  {
    try( ) {
      DriverManager,registerDriver( new OracleDriver() ); 
 
      Statement stat = conn.createStatement( ); 
      ResultSet ret = stat.executeQuery( "SELECT * FROM foo" ); 

      int int_num1
      String str1

      while ( ret.next( ) != false )
      {
        int_num1 = ret.getInt("col_name_int");
        str1 = ret.getString("col_name_str");
        ...
      }

      ret.close(); 
      ret = null; 

      stat.execute("INSERT INTO foo VALUE( 'var1' , 'var2' ... )" ); 
      stat.close( ); 
      stat = null; 
      conn.close( ); 
      conn = null; 
    }

    catch( SQLException ex ) {
      System.out.println( ex.toString( ) ); 
    }
  }
}

 カラム(列))データ取得時は、型ごとのgetメソッドを使用。 

 Javaでは、各オブジェクトをcloseで閉じ、UNIX C/C++と異なり、ガベージコレクション機能があるのでメモリ開放は自動的になされるものの、その上でメモリ領域使用済みを明示するべくnullをセットするのをより良しとする慣習がありますが、実際にメモリが開放されるタイミングはJava/JVM(Java Virtual Machine)に依存します。 

 尚、.NET FrameworkやCLS/CLIをベースとしたVB・VC++/VC#等々でもガベージコレクションが取り入れられていますが、.NETの場合もFinalize メソッドを利用しても、実際のメモリ開放のタイミングは、.NET(CLS/CLI)に依存します。 

ホーム前へ次へ