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

在测试更新update(goddess g)这里的代码时,主函数调用,必须每一个变量都set一遍才可以?

	public static void main(String[] args) {
		// TODO Auto-generated method stub
      db_goddess db_god=new db_goddess();
      Goddess g=new Goddess();
      g.setAge(23);
      g.setEmail("12345@email.com");
      g.setIsdel(0);
      g.setBirthday(new Date(2015,3,23));
      g.setSex(0);
      g.setUpdate_user("admin");
      g.setUser_name("rose");
      g.setMobile("1344698");
      g.setId(7);
       db_god.update(g);
	public static void main(String[] args) {
		// TODO Auto-generated method stub
      db_goddess db_god=new db_goddess();
      Goddess g=new Goddess();
      g.setAge(23);
      g.setEmail("12345@email.com");
      g.setMobile("1344698");
      g.setId(7);
       db_god.update(g);

下面这种我就得不到结果,表中的相应记录没有更新,这是为什么呢

提问者:小不点2016 2016-08-04 23:04

个回答

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

    我试了下,不可以,g中不全部赋值update中要更新的字段的话,会引发空指针异常。

    创建了一个godness对象时,不全部赋值的话,系统自动为引用变量赋值为null,

    当执行INSERT SET user_name=?时,相当于INSERT SET user_name=null, 所以引发空指针异常。

    一个可能的办法是在创建godness类时,为每个属性赋一个默认值,后面再用set方法修改需要改的值。

    如果你想直接在上一条记录的基础上更改某几个字段,我觉得可以先查询,返回一个g,在这个g的基础上修改。

  • RivenJathon3547632
    2016-08-05 14:41:55

    可以不用,你update()方法的定义里面涉及到哪些量,对应set哪些量就行