关于if语句的一点疑问

    if(Dao.addKhinfo(tbkhinfo)){
            JOptionPane.showMessageDialog(null, "数据保存成功");              
            reset.doClick();
            }

if括号里已经为真了, 大括号里的语句还是不执行

在里面加点输出语句 看看效果执行了没

没有什么好解释的啊,你确定是真么?

这个是java代码还是js代码!?

你是怎么判断if为真,又是怎么判断代码不执行的
Boolean b = Dao.addKhinfo(tbkhinfo);
system.out.println(b);
if(b){
system.out.println("in if statement");
JOptionPane.showMessageDialog(null, "数据保存成功");

reset.doClick();
}
看下输出什么。

JOptionPane 或reset未实例化

在大括号前输出个hello.world测试就好啦,如果不显示,那还是再确认一下if条件的可靠性了

如果是js代码,在你的代码前面debugger一下,看下Dao.addKhinfo(tbkhinfo)的结果是否为true,

debugger;
if(Dao.addKhinfo(tbkhinfo)){
JOptionPane.showMessageDialog(null, "数据保存成功");

reset.doClick();
}

如果是java代码,你就断点看下这个表达式的结果是不是true。

当然你也可以直接在大括号里写个输出语句看看是否输出。

你是不是还有别的判断,看看别的判断有没有问题,如果你确定这个判读是真的话;

你确定if是执行了的?最好在大括号中加个输出语句,确认if是否判断成功,

Dao.addKhinfo(tbkhinfo)打印出来,在if前面打印出来

确实为假,那么帮我看看问题出在那里

  public static boolean  addKhinfo(TbKehuinfo tbkhinfo){
    if(tbkhinfo==null)
        return false;       
    return insert("insert into tb_khinfo values('"+tbkhinfo.getId()+"'" +
                    ",'"+tbkhinfo.getKhname()+"','"+tbkhinfo.getJian()+"'" +
                            ",'"+tbkhinfo.getAddress()+"','"+tbkhinfo.getBianma()+"'" +
                                    ",'"+tbkhinfo.getTel()+"','"+tbkhinfo.getFax()+"'" +
                                            ",'"+tbkhinfo.getLian()+"','"+tbkhinfo.getLtel()+"'" +
                                                    ",'"+tbkhinfo.getMail()+"','"+tbkhinfo.getYinhang()+"'" +
                                                            ",'"+tbkhinfo.getHao()+"')");       
}



 public static boolean insert(String sql) {
    boolean result = false;
    try {
        Statement stmt = conn.createStatement();
        result = stmt.execute(sql);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return result;
}

这 你觉得可能吗, 无论什么语言都不会出现你说的情况

Dao.addKhinfo(tbkhinfo)一般是void,可能就为false

你确定是真?在大括号里的语句里下个断点试试。

测试条件是否为真,加个输出

你确定if语句中是true吗?可以先打印出来看看