首页 > 解决方案 > 如何解决`遇到在第 1 行 ...` 问题

问题描述

我正在尝试在 JavaFx 项目中创建一个 derby 数据库,当我运行项目并创建表时出现此错误,但我无法向表中添加一行。

这是代码:

void setupMEMBERTable() 
{
    String TABLE_NAME = "MEMBER";
    try {
        stmt = conn.createStatement();
        DatabaseMetaData dbm = conn.getMetaData();
        ResultSet tables = dbm.getTables(null, null, TABLE_NAME.toUpperCase(), null);
        if (tables.next()) {
            System.out.println("Table" + TABLE_NAME);
        } else {
            stmt.execute("create TABLE MEMBER("
                    +"full_name varchar  (200),"
                    +"address  varchar  (200),"
                    +"mobile  varchar  (200),"
                    +"email varchar(200) primary key ,"
                    +"password  varchar  (200),"
                    +"status boolean default true " + ")"); // Updated
        }
    } catch (SQLException e){
        System.err.println(e.getMessage()+"........SETUP DATABASE");
    } finally { }
}

public ResultSet execQuery(String query) {
    ResultSet result;
    try {
        stmt = conn.createStatement();
        result = stmt.executeQuery(query);
    }
    catch (SQLException ex) {
        System.out.println("Exception at execQuery:dataHandler" + ex.getLocalizedMessage());
        return null;
    }
    finally {
    }
    return result;
}

public boolean execAction(String qu) {
    try {
        stmt = conn.createStatement();
        stmt.execute(qu);
        return true;
    }
    catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Error:" + ex.getMessage(), "Error Occurred", JOptionPane.ERROR_MESSAGE);
        System.out.println("Exception at execAction:DataHandler " + ex.getLocalizedMessage());
        return false;
    }
    finally {
    }
}

错误

   Exception at execAction:dataHandler23505 : [0] SQL0000000001-03d30059-0177-5922-d5b6-00001e28fd60, [1] MEMBER

当我尝试添加新成员时会发生这种情况。如您所见,查询未在execAction(qu)方法中执行。
我能做些什么来解决这个问题?

标签: javadatabasederby

解决方案


在我看来,您)在该行中缺少 a:

"status boolean default true <HERE>");

我相信Encountered <EOF> at line 1异常消息是数据库驱动程序发出的语法错误,因为当它到达你的语句末尾时它仍然期待着东西,在你的情况下是 177 个字符长。


推荐阅读