我正在尝试找到Method method = ps.getClass().getMethod("setLong", int.class, Class.forName("java.lang.Long"));
method.setAccessible(true);
method.invoke(ps, fieldIndex, value);
(ps)的方法:
Method method = ps.getClass().getMethod("setString", int.class, Class.forName("java.lang.String"));
method.setAccessible(true);
method.invoke(ps, fieldIndex, value);
但未找到。我必须使用Class.forName(“java.lang.Long”)而不是Long.class。
对于String,它可以工作:
for
我做错了什么?任何的想法? Long的命名空间是错误的吗?
答案 0 :(得分:10)
第二个参数是a long
, not a Long
:
Method method = ps.getClass().getMethod("setLong", int.class, long.class);
此外,对于字符串,您无需致电Class.forName("java.lang.String")
:String.class
也可以。
但是如评论所述,如果您已经有PreparedStatement
个实例,则可以直接致电:
ps.setLong(fieldIndex, value);