public void update(JlDwmyDahua jlDwmyDahua) {
Class clazz=jlDwmyDahua.getClass();//得到类
Field[] fs=clazz.getDeclaredFields();//得到所有字段
Method m=null;
try{
for(Field f:fs){
//m=ReflectUtil.getGetMethod(clazz, f.getName());//获取getter方法
String fieldName = "get" + f.getName().substring(0, 1).toUpperCase()+ f.getName().substring(1);
m= clazz.getMethod(fieldName, null);
if(f.getName().equals("dhId")){
continue;
}
if(f.getName().equals("dhTime")){
continue;
}
BigDecimal getNum=(BigDecimal)m.invoke(jlDwmyDahua, new Object[]{});
if(getNum==null || ("").equals(getNum)){
m=ReflectUtil.getSetMethod(clazz, f.getName());//获取setter方法
m.invoke(jlDwmyDahua, new Object[]{BigDecimal.valueOf(0.0d)});
}
}
jlDwmyDahuaService.update(jlDwmyDahua);
this.success("update.success");
this.redirect(SUCCESS);
}catch (Exception e) {
e.printStackTrace();
}
}
/////////////////////////////从配置文件读取信息
String ReferencesEncryptionClass = "bctts.qrcode.Encrypt" ;//默认加密类
ResourceBundle rb=ResourceBundle.getBundle("bctts.qrcode.configQrInfo");//注意路径是以.表示的
if(rb != null ){
ReferencesEncryptionClass = rb.getString("ReferencesEncryptionClass");
}
////////////////////////////////////////////////////
/*Encrypt encoder = new Encrypt();
String mi = encoder.encrypt(toEncryptStr.toString());// 加密
*/
//利用反射机制执行加密方法
Class clazz= Class.forName(ReferencesEncryptionClass);
Object o = clazz.newInstance();
//获取密文信息
String mi = (String)clazz.getDeclaredMethod("encrypt",String.class).invoke(o,new Object[]{toEncryptStr.toString()});
/////////////////////////////////////////////
如果不确定为哪个类,则方法应:(欢欢大神提供)
public static List commonQuery(String sql, Class cls) {
List list = new ArrayList();
if (sql != null && sql.length() > 0) {
try {
BaseDao baseDao = BeanUtil.getInstance().getBaseDao();
ResultSet rs = baseDao.queryBySQL(sql);
// 从结果集中获取查询的列表名
ResultSetMetaData rsmeta = rs.getMetaData();
while (rs.next()) {
// 动态的创建一个对象?
Object obj = cls.newInstance(); // == UserInfo user = new
// UserInfo();
// 反射类中的属性和方法
Field fds[] = cls.getDeclaredFields();// 获取所有的属性(包括private)
for (int i = 0; i < fds.length; i++) {
// 强制给属性赋值
fds[i].setAccessible(true);
// 给属性赋值(必须先判断数据类型)
String fdTypeName = fds[i].getType().getName();// java.lang.String
// int
// float
// java.lang.Object
// 当前属性名
String currentName = fds[i].getName();
// 添加一个条件.................(属性名和查询的列表相同的时候,才给属性赋值)
for (int j = 1; j <= rsmeta.getColumnCount(); j++) {
String columnName = rsmeta.getColumnName(j);
// 属性名和列名相同的时候,可以赋值了
if (currentName.equalsIgnoreCase(columnName)) {
if (fdTypeName.endsWith("String")) {// String类型
fds[i].set(obj, rs.getString(currentName));
} else if (fdTypeName.endsWith("int")
|| fdTypeName.endsWith("Integer")) {
fds[i].setInt(obj, rs.getInt(currentName));
} else if (fdTypeName.endsWith("float")
|| fdTypeName.endsWith("Float")) {
fds[i].setFloat(obj,
rs.getFloat(currentName));
} else if (fdTypeName.endsWith("double")
|| fdTypeName.endsWith("Double")) {
fds[i].setDouble(obj,
rs.getFloat(currentName));
} else {
System.out.println("系统暂时不支持该数据类型,Sorry!!!");
}
}
}
}
list.add(obj);
}
baseDao.closeResultSet(rs);
baseDao.closeResource();
} catch (Exception e) {
e.printStackTrace();
}
}
return list;
}