derby 組み込みデータベースを使用して、Java デスクトップ データベース アプリケーションを作成しようとしていますが、完全に修正できない問題がいくつかあります。答えを (たくさん) 検索しましたが、いくつか見つかりましたが、問題を解決できなかったので、自分で質問することにしました。私はnetbeansでデータベースを作成し、チュートリアル全体が教えているように、derby.jarをダウンロードしてプロジェクトのライブラリに追加しましたが、作成したデータベースのテーブルにデータを挿入しようとすると、テーブルが存在しません。本当にばかげたものを見逃していると確信していますが、自分でそれを理解することはできないので、どんな助けでも大歓迎です。私はこのすべての Java データベース開発に不慣れで、C# でローカル データベースしか作成していませんでした。
PS: スキーマは「APP」のものです。「INSERT INTO APP.PACIENTE (ID, NOME) VALUES (1, 'victor')」を使用してみましたが、どちらも機能しませんでした
public class BancoDados {
private static String url = "jdbc:derby:MeuBancoDados;create=true";
private static String driver = "org.apache.derby.jdbc.EmbeddedDriver";
static Connection conn;
static Statement sta;
public static void insert() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
conn = null;
sta = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url);
sta = conn.createStatement();
sta.executeUpdate("INSERT INTO PACIENTE (ID, NOME) VALUES (1, 'victor')");
sta.close();
conn.close();
System.out.println("Inserido com sucesso!");
} catch (Exception e) {
System.err.println("Exception: " + e.getMessage());
}
}
}
このエラーが発生します:
Exception in thread "main" ERROR 42X05: Table 'PACIENTE' does not exist.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLModStatementNode.verifyTargetTable(Unknown Source)
at org.apache.derby.impl.sql.compile.InsertNode.bind(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown Source)
at projcad.BancoDados.insert(BancoDados.java:31)
at projcad.projcad.main(projcad.java:8)
Java 結果: 1