我试图找到一个PreparedStatement(ps)的方法:
Method method = ps.getClass().getMethod("setLong", int.class, Class.forName("java.lang.Long"));
method.setAccessible(true);
method.invoke(ps, fieldIndex, value);
Run Code Online (Sandbox Code Playgroud)
但它没有找到.我必须使用Class.forName("java.lang.Long")而不是Long.class.
对于String,它可以工作:
Method method = ps.getClass().getMethod("setString", int.class, Class.forName("java.lang.String"));
method.setAccessible(true);
method.invoke(ps, fieldIndex, value);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?任何的想法?Long的名称空间错了吗?
ass*_*ias 10
第二个参数是a long,而不是Long:
Method method = ps.getClass().getMethod("setLong", int.class, long.class);
Run Code Online (Sandbox Code Playgroud)
此外,对于String,您不需要调用Class.forName("java.lang.String"):String.class也可以.
但是如评论所述,如果你已经有了一个PreparedStatement实例,你可以简单地调用:
ps.setLong(fieldIndex, value);
Run Code Online (Sandbox Code Playgroud)