新手求助一下,想用一个jbutton的监听事件里调用另个类的add方法,把数据加到mysql中,但是发现,点完按钮数据库里加了一条空value值,不知道为什么? 希望大大们能帮我看一下, 下面是我的代码这个是jbutton的监听事件
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        entity.add();
    }       Entity entity = new Entity();    public void setEntity(Entity entity) {
        this.entity = entity;
    }    public String getId() {
        return new String(jTextField1.getText());
    }    public Entity getEntity() {
        return entity;
    }    public String getName() {
        return new String(jTextField2.getText());
    }
这个是add()方法
  public void add() {
        Statement stmt = null;
        Connection conn = null;
        try {
             Test test = new Test();
            conn = ConnectionUtils.getConnection();
            stmt = conn.createStatement();
            String sql = "insert into users_xiey values('" + test.getId() + "','" + test.getName() + "')";
            stmt.executeUpdate(sql);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            ConnectionUtils.close(stmt);
            ConnectionUtils.close(conn);
        }
    }
下面是运行出来的图

解决方案 »

  1.   

    Test test = new Test();
    然后直接 test.getId() ,test.getName() 会有值?
      

  2.   

    你的sql语句:
     String sql = "insert into users_xiey values('" + test.getId() + "','" + test.getName() + "')";
    中的test.getId()是test对象的getId()。和你在main方法里面初始化的那个对象是不一样的吧,你main方法没贴出来,这是我的猜测
      

  3.   

    你数据表中空值下面的数据,是我自己加进去的,main方法应该没有问题的,都是同个对象吧public static void main(String args[]) {  java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Test().setVisible(true);
                }
            });
        }
      

  4.   

    如果不new test的话,怎么才能调用到这个getId() 和 getName()呢?
      

  5.   


    楼主我可以负责的告诉你这两个Test不是同一个对象
    你可以将add增加一个Test参数
      

  6.   


    插入空记录说明test.getId()和test.getName()没有获取到值,对test没有其他操作只有new,那么需要看下Test的构造函数是怎么写的?是否在构造函数中就已经给jTextField1和jTextField2设置过内容?