JavaでMySQLデータベースに接続する方法

JavaでMySQLデータベースに接続する方法

Javaは提供します JDBC(Javaデータベースコネクティビティ) Java SDK(ソフトウェア開発キット)の一部として。これを使う 、リレーショナルデータベースに接続して、レコードのクエリ、挿入、更新、削除などの一般的な操作を実行するのは非常に簡単です。





コアJDBCAPIはJavaに含まれていますが、MySQLやSQL Serverなどの特定のデータベースに接続するには、データベースドライバーと呼ばれる追加のコンポーネントが必要です。このデータベースドライバーは、コアJDBC呼び出しをそのデータベースが理解できる形式に変換するソフトウェアコンポーネントです。





Windows10のスリープ設定が機能しない

この記事では、MySQLデータベースへの接続の詳細と、それを使用していくつかのクエリを実行する方法を見てみましょう。





MySQLデータベースドライバー

上で説明したように、MySQLデータベースに接続できるようにするには、MySQL用のJDBCドライバーが必要です。これはConnector / Jドライバーと呼ばれ、からダウンロードできます。 ここのMySQLサイト。

ZIP(またはTAR.GZ)ファイルをダウンロードしたら、アーカイブを抽出してJARファイルをコピーします mysql-connector-java--bin.jar 適切な場所に。このファイルは、MySQLJDBCドライバーを使用するコードを実行するために必要です。



サンプルデータベースの作成

MySQLデータベースをダウンロードしたと仮定して 適切に設定する アクセスできる場所で、サンプルデータベースを作成して、接続とクエリの実行に使用できるようにします。

選択したクライアントを使用してデータベースに接続し、次のステートメントを実行してサンプルデータベースを作成します。





create database sample;

データベースに接続するには、ユーザー名とパスワードも必要です(管理者として接続する場合を除きます。これは一般的に悪い考えです)。

以下は、という名前のユーザーを作成します testuser 実行しているのと同じマシンからMySQLデータベースに接続するユーザー( ローカルホスト )、パスワードを使用 securepwd





create user 'testuser'@'localhost' identified by 'securepwd';

別のマシン(名前付き)で実行されているデータベースに接続している場合 remotemc )、次を使用する必要があります( remotemc ホスト名またはIPアドレスにすることができます):

create user 'testuser'@'remotemc' identified by 'securepwd';

ユーザー名とパスワードが作成されたので、前に作成したサンプルデータベースへのアクセスを許可する必要があります。

grant all on sample.* to 'testuser'@'localhost';

または、データベースがリモートの場合:

grant all on sample.* to 'testuser'@'remotemc';

これで、次のことができることを確認する必要があります データベースに接続する 同じパスワードで作成したユーザーと同じです。接続後に次のコマンドを実行して、アクセス許可がすべて正しいことを確認することもできます。

create table joe(id int primary key auto_increment, name varchar(25));
drop table joe;

Javaクラスパスを設定する

ここで、JavaからMySQLに接続する方法の詳細を見てみましょう。最初のステップは、データベースドライバをロードすることです。これは、適切な場所で以下を呼び出すことによって行われます。

vizioスマートテレビにアプリを追加するにはどうすればよいですか
Class.forName('com.mysql.jdbc.Driver');

コードは例外をスローする可能性があるため、対処する場合(GUIのエラーメッセージのフォーマットなど)に例外をキャッチできます。

try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
// use the exception here
}

このコードをクラスの静的ブロックで呼び出すことは非常に一般的であるため、ドライバーをロードできない場合、プログラムはすぐに失敗します。

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
}

もちろん、ドライバーを見つけるには、次のようにクラスパスに含まれているドライバーJAR(上記でダウンロードおよび抽出)を使用してプログラムを呼び出す必要があります。

java -cp mysql-connector-java--bin.jar:..。

JavaからMySQLに接続する

JavaからMySQLドライバーをロードする詳細を二乗したので、データベースに接続しましょう。データベース接続を作成する1つの方法は、 DriverManager

String jdbcUrl = ...;
Connection con = DriverManager.getConnection(jdbcUrl);

そして、何ですか jdbcUrl ?データベースが配置されているサーバー、ユーザー名など、接続の詳細を示します。これが私たちの例のサンプルURLです。

String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=secrepwd';

ホスト名(( ローカルホスト )、 ユーザー名とパスワード。 (このようなパスワードを含めることはお勧めできません。代替方法については、以下を参照してください。)

これを使う jdbcUrl 、これは接続性をチェックするための完全なプログラムです。

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
static public void main(String[] args) throws Exception
{
String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=securepwd';
Connection con = DriverManager.getConnection(jdbcUrl);
System.out.println('Connected!');
con.close();
}
}

データベース接続はプログラムの貴重なリソースであり、上記のように適切に閉じる必要があることに注意してください。ただし、上記のコードは、例外が発生した場合に接続を閉じません。正常または異常な出口で接続を閉じるには、次のパターンを使用します。

try(Connection con = DriverManager.getConnection(jdbcUrl)) {
System.out.println('Connected!');
}

上記のように、JDBCURLにパスワードを埋め込むことはお勧めできません。ユーザー名とパスワードを直接指定するには、代わりに次の接続オプションを使用できます。

AndroidアプリでSpotifyプレミアムをキャンセルする方法
String jdbcUrl = 'jdbc:mysql://localhost/sample';
try(Connection con = DriverManager.getConnection(jdbcUrl, 'testuser', 'securepwd')) {
}

Javaからのデータベースのクエリ

データベースへの接続が確立されたので、データベースバージョンのクエリなど、クエリを実行する方法を見てみましょう。

select version();

クエリは次のようにJavaで実行されます。 NS 声明 オブジェクトが作成され、クエリが実行されます。 executeQuery() を返すメソッド ResultSet

String queryString = 'select version()';
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(queryString);

からバージョンを印刷します ResultSet 次のように。 1 1から始まる、結果の列のインデックスを参照します。

while ( rset.next()) {
System.out.println('Version: ' + rset.getString(1));
}

結果を処理した後、オブジェクトを閉じる必要があります。

rset.close();
stmt.close();

これで、JavaからMySQLに接続し、簡単なクエリを実行するためのすべてがカバーされます。

また、私たちをチェックしてください SQLコマンドのチートシート

共有 共有 つぶやき Eメール 互換性のないPCにWindows11をインストールしても大丈夫ですか?

これで、公式のISOファイルを使用して古いPCにWindows 11をインストールできます...しかし、そうすることをお勧めしますか?

次を読む
関連トピック
  • プログラミング
  • Java
  • SQL
著者について ジェイ・スリダール(17の記事が公開されました) JaySridharのその他の作品

ニュースレターを購読する

ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。

購読するにはここをクリックしてください