0

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

4

1 に答える 1

1

テーブル 'PACIENTE' は存在しません。

これは、データベースでPACIENTEテーブルを作成していないためです。

作成します。

于 2013-03-20T15:24:19.503 に答える