我的错误
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列是数字(1,0),我的set string列是varchar。
注意:我使用的是spring 1.2,目前升级到spring 3.
可能有什么不对?
我该如何解决这个问题?
答案 0 :(得分:1)
你确定myObj
不是空的吗?看起来它可能是该语句中唯一可能为null的对象。你能对方法内的对象进行简单的空检查以确认吗?
答案 1 :(得分:0)
在您的班级myObj
中,val1
和val2
的值永远不会被初始化。