0

我的错误

 java.lang.NullPointerException.
 MyDAO$2.setValues
    org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:680)
    org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:454)
    org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:676)
    org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:738)

net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:694)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:639)

我的代码是

     this.jdbcTemplate.update(SOME_SQL_UPDATE, new PreparedStatementSetter() {
                    public void setValues(PreparedStatement ps) throws SQLException {
                        ps.setBoolean(1, myObj.isVal1());
                        ps.setString(2, myObj.getVal2().toString());
                    }
                });

public class myObj {
    private boolean val1;
    private Enum val2;
}

我的布尔值 db 列是 number(1,0),我设置的字符串列是 varchar。

注意:我使用的是 spring 1.2,目前正在升级到 spring 3。

有什么问题?

我怎样才能解决这个问题?

4

2 回答 2

1

你确定myObj不为空吗?看起来它可能是该语句中唯一可以为空的对象。您能否对方法内的对象进行简单的空检查以确认?

于 2012-06-01T15:26:49.107 回答
0

在您的班级中,和myObj的值永远不会被初始化。val1val2

于 2012-06-01T15:26:14.893 回答