Java 语句上的NullPointerException.executeUpdate()

Java 语句上的NullPointerException.executeUpdate(),java,jdbc,Java,Jdbc,我用JSP和Java创建了一个网站,它只显示一个表单(这是一个用户注册表单),用户可以在其中填写表单,然后我希望它存储在数据库中。 我安装了Eclipse、Tomcat(在本地主机8080上运行)和Wampserver(安装了phpmyadmin和我的SQL数据库) 我尝试创建一个ORM(对象关系映射),因此当客户端提交表单时,它会将数据发送到我的ORM,然后我的ORM会将数据存储在我的数据库中 问题是,当用户提交表单时,会创建我的表(我可以在phpmyAdmin上看到它),因此它非常好。但它在

我用JSP和Java创建了一个网站,它只显示一个表单(这是一个用户注册表单),用户可以在其中填写表单,然后我希望它存储在数据库中。 我安装了Eclipse、Tomcat(在本地主机8080上运行)和Wampserver(安装了phpmyadmin和我的SQL数据库)

我尝试创建一个ORM(对象关系映射),因此当客户端提交表单时,它会将数据发送到我的ORM,然后我的ORM会将数据存储在我的数据库中

问题是,当用户提交表单时,会创建我的表(我可以在phpmyAdmin上看到它),因此它非常好。但它在我的网站上崩溃并产生错误

HTTP500, java.lang.NullPointerException. 
它说问题在继续

com.jweb.bdd.Orm.Perform(Orm.java:139)
这是我的CreateClient.java文件中的代码,该java文件处理我的注册表的servlet:

  public class CreationClient extends HttpServlet {
      public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {

        [...]
        String lastName= request.getParameter( CHAMP_LASTNAME);
        String Name= request.getParameter( CHAMP_NAME);
        String mailAdress = request.getParameter( CHAMP_MAILADRESS);
        String phoneNumber= request.getParameter( CHAMP_PHONENUMBER);
        String login= request.getParameter( CHAMP_LOGIN);
        [...]

         Orm orm = new Orm();
         String[] field = {"login", "firstName", "lastName", "mailAdress", "adress", "phoneNumber", "password"};
         String[] values = {login, firstName, lastName, mailAdress, adress, phoneNumber, password};
         orm.Insert("client", field);
         orm.Values(values);
         orm.Perform();
         orm.CloseConnection();

         [...]
    }
}
下面是我的ORM类中的Perfom()函数:

public void Perform(){
            ResultSet rst = null;

            if (select != null){
                    if (from != null && where != null){
                            try {          
                                    rst = statement.executeQuery(select + from + where);
                            } catch (SQLException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                            }
                            try {
                                    int i = 0;
                                    while (rst.next()){
                                    res[i] = rst.getString(0) + ":" + rst.getString(1)+ ":" + rst.getString(3) + ":" + rst.getString(4) +":" + rst.getString(5) + ":" + rst.getString(6)+ ":" + rst.getString(7) + ";";
                                    i++;
                                    }
                            } catch (SQLException e){
                                    e.printStackTrace();
                            }
                    }
            }
            else if (insert != null){
                    if (values != null){
                            try {
                             // statement = connexion.creatStatemnt();
                                    int res = statement.executeUpdate(insert + values);
                            } catch (SQLException e) {
                                    e.printStackTrace();
                            }
                    }
            }
            try {
                    rst.close();
            } catch (SQLException ignore){         
            }
            if ( statement != null ) {
        try {
            statement.close();
        } catch ( SQLException ignore ) {
        }
    }
    }
第139行的错误是int res=statement.executeUpdate(insert+values);:

你知道如何解决空指针的问题吗


谢谢。

您需要初始化您的
语句
对象,您在代码中使用了
statement.executeQuery()
,但不是
statement=connection.createStatement()
初始化语句对象。

您需要在代码中初始化您使用的
语句
对象但不是
statement=connection.createStatement()
初始化语句对象。

显然
statement
null
。要记住的是,当左侧为
null时,该错误是由
运算符引起的。例如,您不能调用
null.executeUpdate()
。显然
语句
null
。需要记住的是,当左侧为
null
时,该错误是由
运算符引起的。比如,你不能调用
null.executeUpdate()
@developerwjk谢谢你指出我的错误,我已经编辑了我的答案。@developerwjk谢谢你指出我的错误,我已经编辑了我的答案。
   else if (insert != null){
                        if (values != null){
                                try {
                                        int res = statement.executeUpdate(insert + values);
                                } catch (SQLException e) {
                                        e.printStackTrace();
                                }
                        }