データベースのリソース
DatabaseLink を使うと,他の
Mathematica アプリケーションが
DatabaseResourcesディレクトリにあるデータベース接続のリソース情報を保管できるようになります.
DatabaseResourcesディレクトリを置くことのできる場所は
$InstallationDirectory,
$BaseDirectory,
$UserBaseDirectory内にたくさんあります.
| DatabaseResourcesPath[] | リソースを検索するDatabaseResourcesディレクトリ |
| $InstallationDirectory/AddOns/ExtraPackages/* | 可能なDatabaseResourcesディレクトリの場所 |
| $InstallationDirectory/AddOns/StandardPackages/* | |
| $InstallationDirectory/AddOns/Autoload/* | |
| $InstallationDirectory/AddOns/Applications/* | |
| $BaseDirectory/Autoload/* | |
| $BaseDirectory/Applications/* | |
| $UserBaseDirectory/Autoload/* | |
| $UserBaseDirectory/Applications/* | |
DatabaseResourcesPathコマンドでDatabaseResourcesディレクトリの現在の場所が分かります.
| Out[2]= |  |
DatabaseResourcesディレクトリには,JDBC設定を保管しているファイルと接続設定を保管しているファイルの2種類のファイルを保管することができます.
JDBCの設定
拡張子.mが付いている
DatabaseResourcesディレクトリのファイルはすべて,可能なJDBC設定情報が含まれているかどうか確認されます.JDBC設定ファイルの形式は以下のようになっています.
JDBCDriver[
"Name" -> "name",
"Driver" -> "driverclass",
"Protocol" -> "protocol",
"Version" -> 1
]
この形式において,
nameは接続名(
OpenSQLConnectionで使われることもあります),
driverclassはJDBCドライバのクラスファイル,
protocolはJDBCプロトコルです.設定ファイルのバージョンは
Version設定で指定されます.
HSQLDB用に設定したファイルの例を以下に示します.
JDBCDriver[
"Name" -> "hsqldb",
"Driver" -> "org.hsqldb.jdbcDriver",
"Protocol" -> "jdbc:hsqldb:",
"Version" -> 1
]
このファイルは,以下のコマンドのように,
hsqldb接続で
OpenSQLConnectionが呼び出されたときに使われるドライバとプロトコルを指定するものです.
OpenSQLConnection[JDBC["hsqldb",ToFileName[{"DatabaseLink","Examples"},"example"]]
別のファイルの例です.これはOracle用に設定されています.
JDBCDriver[
"Name" -> "oracle",
"Driver" -> "oracle.jdbc.driver.OracleDriver",
"Protocol" -> "jdbc:oracle:thin:@",
"Version" -> 1
]
これは,以下のコマンドのように,
oracle接続のために
OpenSQLConnectionが呼び出されたときに使用するドライバとプロトコルを指定するものです.
OpenSQLConnection[JDBC["oracle","server.business.com:1999"],
"Username" -> "server1"]
データベース接続:JDBC接続に記載のように,JDBCドライバクラスを保管するようにアプリケーションを加えた場合は,同じアプリケーションの中に
DatabaseResourcesディレクトリを作ってJDBC設定情報を保管することができます.次の表はOracleデータベースに接続するときに使用できる
Oracleという名前のアプリケーションレイアウトです.
| $UserBaseDirectory/Applications/Oracle/Java | データベースドライバクラスファイルの場所 |
| $UserBaseDirectory/Applications/Oracle/DatabaseResources | JDBC設定ファイルの場所 |
新しいJDBCドライバをインストールしたら,
データベース接続:JDBC接続に従ってシステムが新しいドライバにアクセスできるかどうかをご確認ください.
接続設定
拡張子.mが付いている
DatabaseResourcesディレクトリのファイルはすべて,可能な接続設定情報が含まれているかどうか確認されます.接続設定ファイルの形式は以下のようになっています.
SQLConnection[
connectdata,
"Name" -> "name",
"Description" -> "text",
"Username" -> "user",
"Password" -> "pass",
"RelativePath" -> True|False,
"Version" -> 1
]
ここで,
connectdataは接続データ(通常JDBC設定)を保管しており,
nameは接続名(
OpenSQLConnectionで使われることがあります),
textは接続のテキストによる記述,
userと
passはデータベースに接続する際のユーザ名とパスワードを表しています.パスワードに
$Promptを指定すると,パスワード入力用のGUIが現れます.接続データが相対パスを含んでいる場合,これは
RelativePath設定で指定します.設定ファイルのバージョンは
Version設定で指定されます.
HSQLDB用に設定したファイルの例を以下に示します.
SQLConnection[
JDBC["hsqldb", "../Examples/example"],
"Name" -> "example",
"Description" -> "Connection to hsql db for documention.",
"Username" -> "sa",
"Password" -> "",
"RelativePath" -> True,
"Version" -> 1]
このファイルは,ファイル
Examples/exampleへの接続にHSQLDBを使うことを指定します.ファイル
Examples/exampleの場所は,設定ファイルの場所に対する相対パスです.ユーザ名
saと空のパスワードも渡されます.この接続情報には
exampleという名前が付いています.この設定ファイルは次の
OpenSQLConnectionコマンドをサポートします.
OpenSQLConnection["example"]
別のファイルの例です.これはOracle用に設定されています.
SQLConnection[
JDBC["oracle", "server.business.com:1999"],
"Name" -> "businessDB",
"Description" -> "Connection to Oracle db.",
"Username" -> "server1",
"Version" -> 1]
これは,以下のコマンドのように,
businessDBで
OpenSQLConnectionが呼び出されたときに使用する接続情報を指定するものです.
OpenSQLConnection["businessDB"]
データベース接続:JDBC接続で述べたようにJDBCドライバクラスを保有するアプリケーションと,
前述のようにJDBC設定情報を加えた場合は,Oracle接続情報を保管するのに同じ場所を使うことができます.次の表はOracleへの接続に使用できるアプリケーションレイアウトです.
| $UserBaseDirectory/Applications/Oracle/Java | データベースドライバクラスファイルの場所 |
| $UserBaseDirectory/Applications/Oracle/DatabaseResources | JDBC設定ファイルの場所 |
| $UserBaseDirectory/Applications/Oracle/DatabaseResources | 接続設定ファイルの場所 |
接続設定ファイルを書く手助けとして,コマンド
WriteDataSourceが使えます.
testSourceというデータソースを作成します.
HSQLデータベースを使います.
| Out[2]= |  |
DataSourceNamesによるリストに新しいデータソースが現れます.
| Out[3]= |  |
データソースに接続して利用し始めることができます.
HSQLデータベースの利点のひとつは,データベースが存在しなければ作成されるということです.
| Out[4]= |  |
HSQL以外のデータベースに接続したい場合は,
WriteDataSourceの第2引数で指定できます.次の例は,
MySQL データベースを使ってデータソースファイルを書きます.
これはデータベース
main/testの作成にMySQLサーバとは通信しないことにご注意ください.データベースはすでに存在していると仮定されます.しかし,これは名前付き接続を作成するのにはやはり便利な方法です.
Username,
Password,
Location等のパラメータの設定方法をお確かめください.
Locationの選択肢には
"User",
"System"があります.re "
User" and
"System".
接続設定ファイルを書きたくない場合は,
Database Explorer:New Connection Wizardに記載のNew Connection Wizardを使うことができます.
新しい名前付き接続を作成したら,
データベース接続:名前付き接続に従って新しい接続がシステムにアクセスできるかどうかをご確認ください.