JDBCドライバでデ​​ータベースに接続す​る​にはどうすればよ​いで​すか?

23 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 25 May 2021
異なる種類のドライバでデータベースにアクセスする方法を教えてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 17 Nov 2023
Edited: MathWorks Support Team on 17 Nov 2023
以降では、1. Microsoft SQL サーバー、2. Oracle、3. My SQL に接続するJDBCデータベースを設定する方法をご紹介します。
なお、MATLAB での接続テストやその他の関連情報については、4,5 に記載されている内容をご覧ください。
1. Microsoft SQL サーバーの場合
1-1) ご利用のデータベースに適する最新の JDBC ドライバをダウンロードします。
(参考)
1-2) ドライバの設定やデータベース接続オブジェクトの作成方法は、ドライバに付属しているドキュメントをご参照ください。
2. ORACLE の場合
2-1) ご利用のデータベースに適する最新の JDBC ドライバをダウンロードします。
(参考)
2-2) 下記コマンドを実行し、MATLAB エディタにて $MATLAB\toolbox\local\classpath.txt を開きます。
edit classpath.txt
2-3) ファイル最終行に、データベースのドライバファイルのフルパスを追記します。
例:
C:\Drivers\Oracle\ojdbc6.jar
2-4) ファイルを保存し、MATLAB を再起動します。
2-5) 下記のようにコマンドを実行し、データベースに接続します。
 
% Syntax: database('databasename','username','password','driver','databaseurl')
% 111.222.333.444:1521 represents the IP address and port of the server.
conn = database('databasename','scott','tiger','oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@111.222.333.444:1521:');
3.MySQL の場合
3-1) 最新の JDBC ドライバ(Conenector/J)を下記よりダウンロードします。
3-2) 下記コマンドを実行し、MATLAB エディタにて $MATLAB\toolbox\local\classpath.txt を開きます。
edit classpath.txt
※ダイナミックな Sun Java class パスをドライバに追加する場合は、JAVAADDPATH 関数をご利用いただけます。
3-3)ファイル最終行に、データベースのドライバファイルのフルパスを追記します。
例:
C:\Drivers\MySQL\mysql-connector-java-5.1.12-bin.jar
3-4) ファイルを保存し、MATLAB を再起動します。
3-5) 下記のようにコマンドを実行し、データベースに接続します。
% Host: localhost, schema: test.
url = 'jdbc:mysql://localhost/test';
conn = database('databasename', 'username', 'password', 'com.mysql.jdbc.Driver', url);
4. 接続テスト
上記の設定を行った後、以下の方法にて接続テストを行うことができます。
% Open DB connection here.
% [...]
% Test the connection.
ping(conn)
if isconnection(conn)
    % SQL query to get all fields from Table1.
    curs = exec(conn,'SELECT * FROM Table1');
    curs = fetch(curs);
    data = curs.data; % Actual data.
    % Update Table1.
    % UPDATE TABLE1 SET Field1=1 WHERE Field2=1
    % UPDATE TABLE1 SET Field1=2 WHERE Field2=2
    % UPDATE TABLE1 SET Field1=3 WHERE Field2=3
    update(conn,'Table1',{'Field1'},{1; 2; 3},{'WHERE Field2=1'; 'WHERE Field2=2'; 'WHERE Field2=3'});
    % Update Table1.
    % UPDATE TABLE1 SET Field1=1 WHERE Field3='aaa'
    % UPDATE TABLE1 SET Field1=2 WHERE Field3='bbb'
    % UPDATE TABLE1 SET Field1=3 WHERE Field3='ccc'
    update(conn,'Table1',{'Field1'},{1; 2; 3},{'WHERE Field3=''aaa'''; 'WHERE Field3=''bbb'''; 'WHERE Field3=''ccc'''});
    % Insert data into Table1.
    exec(conn,'INSERT INTO Table1(Field1, Field2, Field3) VALUES(4, 4, ''ddd'')');
    % Delete data from Table1
    exec(conn,'DELETE FROM Table1 WHERE Field3=''ddd''');
    % Add a records using FASTINSERT.
    fastinsert(conn,'Table1',{'Field1', 'Field2', 'Field3'}, {1, 1, 'aaa'; 2, 2, 'bbb'; 3, 3, 'ccc'});
    % Clean up.
    close(conn);
   end %if
5. 関連情報
・Setting Up Data Sources for Use with JDBC Drivers

More Answers (0)

Tags

No tags entered yet.

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!