derby を C:\ に直接ダウンロードし、DERBY_INSTALL および CLASSPATH 変数を設定しました。
C:\>set DERBY_INSTALL=C:\Apache\db-derby-10.9.1.0-bin
C:\>set CLASSPATH=%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbytools.jar;.
C:\> cd %DERBY_INSTALL%\bin
C:\db-derby-10.9.1.0-bin\bin>java org.apache.derby.tools.ij
ij version 10.9
ij>
したがって、ij> が表示され、コマンド ライン SQL ステートメントを使用してデータベースを作成できます。しかし、Java コードを使用してデータベースとそのテーブルを作成する必要があります。以下のソースコードですが、どこに貼り付けて実行するのかわかりません。それを db-derby-10.9.1.0-bin>bin フォルダーに貼り付け、「java MainClass komaldb C:\」を使用してそのフォルダー内で実行しようとすると、メイン クラス MainClass が見つからなかったか、読み込めなかったことを示しています。Java プログラムをどこから実行すればよいかわかりません。
Java ソース コード:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class MainDB {
static Connection conn;
public static void main(String[] args) throws Exception {
if (args.length != 2) {
System.out.println("Usage: java JavaDBDemo <Name> <Address>");
System.exit(1);
}
String driver = "org.apache.derby.jdbc.EmbeddedDriver";
String dbName = "AddressBookDB";
String connectionURL = "jdbc:derby:" + dbName + ";create=true";
String createString = "CREATE TABLE ADDRESSBOOKTbl (NAME VARCHAR 32) NOT NULL,
ADDRESS VARCHAR(50) NOT NULL)";
Class.forName(driver);
conn = DriverManager.getConnection(connectionURL);
Statement stmt = conn.createStatement();
stmt.executeUpdate(createString);
PreparedStatement psInsert = conn
.prepareStatement("insert into ADDRESSBOOKTbl values (?,?)");
psInsert.setString(1, args[0]);
psInsert.setString(2, args[1]);
psInsert.executeUpdate();
Statement stmt2 = conn.createStatement();
ResultSet rs = stmt2.executeQuery("select * from ADDRESSBOOKTbl");
System.out.println("Addressed present in your Address Book\n\n");
int num = 0;
while (rs.next()) {
System.out.println(++num + ": Name: " + rs.getString(1) + "\n Address"
+ rs.getString(2));
}
rs.close();
}
}