Netbeans 7.2.1 にデータベースが組み込まれた Java アプリケーションを構築しています。今のところ、次のコードを使用して derby データベースとの接続を確立できます。
Connection con = DriverManager.getConnection(
"jdbc:derby:database;create=true",
uName,
uPass);
ただし、データベースのテーブルに対してクエリを実行できません。いくつかの調査の後、次のコードを実行しようとしましたが、成功しませんでした。
Statement stmt = con.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT descricao FROM fichas");
while (rs.next()) {
String s = rs.getString("descricao");
System.out.println(s);
}
ここで 2 つの問題があります。まず、検索に基づいて、上記の例のように Statement stmt を使用する必要がありますが、netbeans でエラーが発生します。彼に続くメソッド「stmt.executeQuery()」を実行できるようにするには、ステートメントを次のように定義する必要があります。
java.sql.Statement stmt = con.createStatement();
このように使用しないと、「executeQuery」メソッドを選択できません。第二に、これを使用してもクエリは実行されません。コンソールに次のエラーが表示されます。
java.sql.SQLSyntaxErrorException: スキーマ 'ADMIN_DATABASE' が存在しません
これを解決する方法のヒントはありますか? ありがとうございました!
新しいアップデート:
私はいくつかのテストを実行していましたが、ここにいくつかの新しい結論があります。netbeans のサービス パネルからテーブルを作成する代わりに、次のコードを実行します。
stmt.execute("create table test_table (name varchar(128))");
できます。テーブルが作成され、再試行すると、テーブルが既に存在するという予想されるエラーが発生します。ただし、サービスパネルを見て、アプリに埋め込まれたダービーデータベースにアクセスすると、この「テストテーブル」が他のものと一緒にありません。
それに加えて、そのテーブルで選択を実行してもスキーマエラーは発生しませんが、サービスパネルで手動で作成した他のテーブルでは引き続きエラーが発生します。
それで、誰が違いが何であるか説明できますか?test_table
私が作成したものはどこに行きますか? この作成モードと derby でテーブルを作成するモードの違いは何ですか? スキーマ エラーが表示されるのはなぜですか?
たくさんの質問をして申し訳ありませんが、今はとても混乱しています。ありがとうございました!