Spring 错误:java.sql.SQLSyntaxErrorException,如何修复?

Spring 错误:java.sql.SQLSyntaxErrorException,如何修复?,spring,hibernate,jetty,Spring,Hibernate,Jetty,我对SQL语法有问题。当imvn jetty:run时,出现以下错误: java.sql.SQLSyntaxErrorException:语法错误:在遇到“用户” 第1行,共14列。 位于org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(未知 n来源) 位于org.apache.derby.impl.jdbc.Util.generateCsSQLException(未知源 ) 位于org.apache.derby.imp

我对SQL语法有问题。当i
mvn jetty:run
时,出现以下错误:

java.sql.SQLSyntaxErrorException:语法错误:在遇到“用户” 第1行,共14列。 位于org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(未知 n来源) 位于org.apache.derby.impl.jdbc.Util.generateCsSQLException(未知源 ) 位于org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException (来源不明) 位于org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Un (已知来源) 位于org.apache.derby.impl.jdbc.EmbedConnection.handleException(未知 (资源) 位于org.apache.derby.impl.jdbc.ConnectionChild.handleException(未知 (资源) 位于org.apache.derby.impl.jdbc.EmbedStatement.execute(未知源代码) 位于org.apache.derby.impl.jdbc.EmbedStatement.execute(未知源代码) 位于edu.java.spring.service.user.controller.CustomContextLoaderListener.c reateTableNotExist(CustomContextLoaderListener.java:68) 位于edu.java.spring.service.user.controller.CustomContextLoaderListener.c reateTable(CustomContextLoaderListener.java:48) 位于edu.java.spring.service.user.controller.CustomContextLoaderListener.c OnTesteInitialized(CustomContextLoaderListener.java:36)

此处文件
CustomContextLoaderListene
遇到错误:

package edu.java.spring.service.user.controller;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletContextEvent;

import org.springframework.web.context.ContextLoaderListener;

public class CustomContextLoaderListener extends ContextLoaderListener{

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        // TODO Auto-generated method stub
        System.out.println("hibernate shutdown database");
        try {
            DriverManager.getConnection("jdbc:derby:D:/PROJECTSPRING/userdb;shutdown=true");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("\n Spring-MVC application destroyed \n");
        super.contextDestroyed(event);

    }

    @Override
    public void contextInitialized(ServletContextEvent event) {
        // TODO Auto-generated method stub
        System.out.println("\n Spring-MVC application inited \n");
        try {
            createTable();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        super.contextInitialized(event);
    }

    public void createTable() throws SQLException{
        try {
            Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
            Connection connection = DriverManager.getConnection("jdbc:derby:D:/PROJECTSPRING/subjectdb;create=true");
            createTableNotExist(connection,"user", "create table user"
                    + "(username varchar(1000) primary key,"
                    + "password varchar(1000),birthday date,"
                    + "age integer,gender varchar(100))");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    public void createTableNotExist(Connection connection,
            String tableName,String createTableSQL) throws SQLException{
        DatabaseMetaData dbmd = connection.getMetaData();
        ResultSet rs = dbmd.getTables(null, null,tableName.toUpperCase(), null);
        if (rs.next()){
            System.out.println("Table" + rs.getString("TABLE_NAME") + "already exists");
            return;

        }
        Statement statement = connection.createStatement();
        statement.execute(createTableSQL);
        System.out.println("\n\n executed" + createTableSQL + "\n\n");
        statement.close();
    }


}
“用户”是derby中的内置函数。输入另一个表名,它将开始工作