PcSchool.Club

パソコンを分かりやすく解説することを目指す無料のオンラインパソコン教室

岐阜のパソコン教室「パソコンスクール・テルン」

JavaDBの使い方を動画で分かりやすく解説

2021年7月16日

JavaDBを利用する際、もしくはJavaよりMySQLを利用する際に
ClassPathが見当たらいないや、jdbc.Driverが見つからないなどのエラーに悩んでいる人が多いということで、動画を公開しました。

エラーの主な種類としては、
java.lang.ClassNotFoundExeption:org.apache.derby.jdbc.EmbeddedDriver
や、
java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
などのエラーが出て、悩んでいる人が多いみたいです。

1.JDKのダウンロードとインストールについて
(ダウンロード方法を動画で分かりやすく解説)

2.JDKのインストール

3.JavaDBを利用してみる
(pathの設定から、DBの作成、ijを起動してからtableの作成まで分かりやすく解説)

4.JavaプログラムからJavaDBに接続するためのプログラムの作成

5.jdbc.Driverのclasspath(クラスパス)を割り振りコンパイルとプログラムの実行

6.接続が失敗したときにfinallyの処理を追加記述する

この動画を録画中は睡眠不足でエラーが非常に多かったのですが、初心者の良く間違う部分を意図的に間違える狙いもあったため、ご理解ください。

これでご覧の皆さんもJavaDBが利用できるようになりしたか。

===================================
以下教材
===================================

1.
参照場所は、バージョンにより変わりますが、JavaDB のpath を設定します。
set PATH=%PATH%;C:\Program Files\Sun\JavaDB\bin
2.
ツールij を起動します。
>ij
3.
コネクトコマンドにて、データベースを作成します
connect ‘jdbc:derby:c:\Documents\javadb\sample1;create=true’;
4.
接続を確認します。
connect ‘jdbc:derby:c:\Documents\javadb\sample1’;
5.ij を終了します
>exit
6.
DB 一覧のチェック
Show tables in APP;
7.
以下のプログラムを作成します。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JavaDBSample1 {
public static void main(String[] args) throws SQLException {
Connection conn = null;
try {
//Class.forName(“com.mysql.jdbc.Driver”).newInstance(); ←MySQL の場合
Class.forName(“org.apache.derby.jdbc.EmbeddedDriver “).newInstance();
conn = DriverManager.getConnection(“jdbc:derby:c:/Users/user/Desktop/javadb/sample1;create=true”);
System.out.println(“接続成功”);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
つづけて、Java プログラムからDB にアクセスします。
8.
その前に環境を整えます。
set PATH=%PATH%;C:\Program Files\Java\jdk1.6.0_25\bin
9.
次に、javac を行い、java コマンドにてプログラムを実行します
javac -classpath “javadb\lib\derby.jar” JavaDBSample1.java
java -classpath “.;javadb%\lib\derby.jar” JavaDBSample1
10.
以下のソースを入力します。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JavaDBSample2 {
public static void main(String[] args) throws SQLException {
Connection conn = null;
Statement stmt = null;
try {
conn = DriverManager
.getConnection(“jdbc:derby:M:/Documents/javadb/sample1;create=true”);
System.out.println(“接続成功”);
stmt = conn.createStatement();
stmt.executeUpdate(“CREATE TABLE products (pid INTEGER, name VARCHAR(20), price INTEGER, PRIMARY KEY (pid))”);
System.out.println(“テーブル作成”);
stmt.executeUpdate(“INSERT INTO products VALUES(1, ‘AAA’, 100)”);
stmt.executeUpdate(“INSERT INTO products VALUES(2, ‘BBB’, 80)”);
stmt.executeUpdate(“INSERT INTO products VALUES(3, ‘CCC’, 220)”);
System.out.println(“データ挿入”);
ResultSet rs = stmt
.executeQuery(“SELECT * FROM products WHERE price >= 100”);
System.out.println(“選択”);
while (rs.next()) {
int pid = rs.getInt(“pid”);
String name = rs.getString(“name”);
int price = rs.getInt(“price”);
System.out.println(pid + “\t” + name + “\t” + price);
}
rs.close();
stmt.executeUpdate(“DROP TABLE products”);
System.out.println(“テーブル削除”);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}