try {
System.out.println(columnType.substring(columnType.lastIndexOf(".")+1));
setMethods.get(columnName).invoke(
obj,
new Object [] {
rsCls.getMethod("get"+columnType.substring(columnType.lastIndexOf(".")+1)).invoke(
result,
new Object [] {columnName}
)
}
);
} catch (SecurityException e) {
System.out.println("对象赋值失败,要取得的方法可能是私有,执行到:" + columnName);
e.printStackTrace();
} catch (NoSuchMethodException e) {
System.out.println("对象赋值失败,找不到要取得的方法,执行到:" + columnName);
e.printStackTrace();
控制台输出错误:java.lang.NoSuchMethodException: java.sql.ResultSet.getString()
java.lang.String
java.lang.String
java.lang.String
String
对象赋值失败,找不到要取得的方法,执行到:passwd
String
对象赋值失败,找不到要取得的方法,执行到:username
String
对象赋值失败,找不到要取得的方法,执行到:email
at java.lang.Class.getMethod(Unknown Source)
at com.liuwei.tools.test.DBUtil.select(DBUtil.java:180)
at com.liuwei.tools.test.DBUtil.main(DBUtil.java:321)
java.lang.NoSuchMethodException: java.sql.ResultSet.getString()
at java.lang.Class.getMethod(Unknown Source)
at com.liuwei.tools.test.DBUtil.select(DBUtil.java:180)
at com.liuwei.tools.test.DBUtil.main(DBUtil.java:321)
java.lang.NoSuchMethodException: java.sql.ResultSet.getString()
at java.lang.Class.getMethod(Unknown Source)
at com.liuwei.tools.test.DBUtil.select(DBUtil.java:180)
at com.liuwei.tools.test.DBUtil.main(DBUtil.java:321)
System.out.println(columnType.substring(columnType.lastIndexOf(".")+1));
setMethods.get(columnName).invoke(
obj,
new Object [] {
rsCls.getMethod("get"+columnType.substring(columnType.lastIndexOf(".")+1)).invoke(
result,
new Object [] {columnName}
)
}
);
} catch (SecurityException e) {
System.out.println("对象赋值失败,要取得的方法可能是私有,执行到:" + columnName);
e.printStackTrace();
} catch (NoSuchMethodException e) {
System.out.println("对象赋值失败,找不到要取得的方法,执行到:" + columnName);
e.printStackTrace();
控制台输出错误:java.lang.NoSuchMethodException: java.sql.ResultSet.getString()
java.lang.String
java.lang.String
java.lang.String
String
对象赋值失败,找不到要取得的方法,执行到:passwd
String
对象赋值失败,找不到要取得的方法,执行到:username
String
对象赋值失败,找不到要取得的方法,执行到:email
at java.lang.Class.getMethod(Unknown Source)
at com.liuwei.tools.test.DBUtil.select(DBUtil.java:180)
at com.liuwei.tools.test.DBUtil.main(DBUtil.java:321)
java.lang.NoSuchMethodException: java.sql.ResultSet.getString()
at java.lang.Class.getMethod(Unknown Source)
at com.liuwei.tools.test.DBUtil.select(DBUtil.java:180)
at com.liuwei.tools.test.DBUtil.main(DBUtil.java:321)
java.lang.NoSuchMethodException: java.sql.ResultSet.getString()
at java.lang.Class.getMethod(Unknown Source)
at com.liuwei.tools.test.DBUtil.select(DBUtil.java:180)
at com.liuwei.tools.test.DBUtil.main(DBUtil.java:321)
.invoke(result, new Object [] {columnName})
* 查询数据
* @param sql
* @param obj 任意类型
*
* @return 与 obj 相同类型的对象
*/
public Object select(String sql, Object obj) {
Map<String, String> fieldsType = this.getFieldsType(obj);
Map<String, Method> setMethods = this.getSetters(obj, fieldsType);
Iterator<String> iterator = setMethods.keySet().iterator();
Class<ResultSet> rsCls = ResultSet.class;
String columnName = null;
String columnType = null;
ResultSet result = null;
try {
result = this.statement.executeQuery(sql);
} catch (SQLException e) {
System.out.println("查询数据失败,程序终止。错误语句:\n");
System.out.println(sql);
}
while(iterator.hasNext()) {
columnName = iterator.next();
columnType = fieldsType.get(columnName);
try {
System.out.println(columnType.substring(columnType.lastIndexOf(".")+1));
setMethods.get(columnName).invoke(
obj,
new Object [] {
rsCls.getMethod("get"+columnType.substring(columnType.lastIndexOf(".")+1)).invoke(
result,
new Object [] {"username"}
)
}
);
} catch (SecurityException e) {
System.out.println("对象赋值失败,要取得的方法可能是私有,执行到:" + columnName);
e.printStackTrace();
} catch (NoSuchMethodException e) {
System.out.println("对象赋值失败,找不到要取得的方法,执行到:" + columnName);
e.printStackTrace();
} catch (IllegalArgumentException e) {
System.out.println("对象赋值失败,非法参数,执行到:" + columnName);
e.printStackTrace();
} catch (IllegalAccessException e) {
System.out.println("对象赋值失败,非法访问,执行到:" + columnName);
e.printStackTrace();
} catch (InvocationTargetException e) {
System.out.println("对象赋值失败,调用函数失败,执行到:" + columnName);
e.printStackTrace();
}
}
return obj;
}什么问题?