问答详情
源自:2-4 JDBC实战---搭建模型层 Ⅱ

提示空指向异常,怎么解决的

提示错误信息如下:

Exception in thread "main" java.lang.NullPointerException

at JDBCPacket.Dao.GoddessDao.addGoddess(GoddessDao.java:39)

at JDBCPaclet.Action.GoddessAction.main(GoddessAction.java:37)


提问者:疯子520520 2016-08-09 19:08

个回答

  • helloworld2008
    2017-01-21 23:55:52

    不好意思,只写了发生的原因,忘记写如何解决了。

    可以将除了我们赋值的那五个字段以外的字段,在add()函数中的sql 语句

    方法一:values(,,,,,,,,,)直接赋上值!

    方法而:直接把insert into tables ()  values () 里面只写上这五个字段名和五个值。

  • helloworld2008
    2017-01-21 23:52:35

    这个问题,我想回答!第一次发现这个问题的时候,当天晚上睡觉前思考,晚上做梦也在想,对于我这个连菜鸟都算不上的初学者来说是个大问题啊。然后,今天debug了下,知道了问题所在。

    我们在add女神函数中,sql语句中有的值是直接设定,有的是要通过用户输入的,我们之前写的测试函数,是将每个值都赋了,所以没有出现这个问题;

    而我们在view类中写的这几个if语句只是赋了姓名,年龄,生日,电话,Email五个信息,而有些既没有设定又没有赋初值的,默认就是null了,此时就会出现nullpointerexception,原因就是访问或修改 null 对象的字段。

    此时你用到的sql语句其实就是类似:insert into table (name,age) values ('xiaomei',    );这个就是访问了null对象。

    理解不?嘿嘿,请高手指教。

  • 慕瓜5081253
    2016-12-24 11:47:01

    我的也是,你怎么解决的呢?

  • Thpffcj
    2016-10-05 21:18:23

    我也是这个问题,感觉是初始化有问题么?

  • charsandrew
    2016-08-25 01:13:03

    跟空格没关系的,空指针异常,GoddessDao.java:39,是这个语句的问题,可以把这一行代码贴出来看看

  • 疯子520520
    2016-08-09 20:34:54

    en~不太清楚,好像是因为不用

     (user_name,sex,age,·······················,isdel)这里的括号

    亦或者是引号前后要空格???不清楚


  • 宇智波小白
    2016-08-09 19:23:40

    String sql=""+

              " insert into imooc_goddess"+

      " (user_name,sex,age,birthday,email,mobile,"+

              " create_user,create_date,update_user,update_date,isdel)"+

    "values("+

              "?,?,?,?,?,?,?,current_date(),?,current_date,null)"; 

    PreparedStatement ptmt=conn.prepareStatement(sql);

    应该是这段代码中 sql 写错了,检查下就可以