如何修复 `Encountered <EOF> at line 1 ...` 问题
How to fix `Encountered <EOF> at line 1 ...` issues
我正在尝试在 JavaFx 项目中创建一个 derby 数据库,当我 运行 项目和 table 创建但我无法向 table.
代码如下:
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)
方法中执行。
我该怎么做才能解决这个问题?
在我看来,您在以下行中缺少 )
:
"status boolean default true <HERE>");
我相信 Encountered <EOF> at line 1
异常消息是由数据库驱动程序发出的语法错误,因为它在到达语句末尾时仍然期待一些东西,在你的例子中是 177 个字符长。
我正在尝试在 JavaFx 项目中创建一个 derby 数据库,当我 运行 项目和 table 创建但我无法向 table.
代码如下:
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)
方法中执行。
我该怎么做才能解决这个问题?
在我看来,您在以下行中缺少 )
:
"status boolean default true <HERE>");
我相信 Encountered <EOF> at line 1
异常消息是由数据库驱动程序发出的语法错误,因为它在到达语句末尾时仍然期待一些东西,在你的例子中是 177 个字符长。