/*** 获取属性名数组 (工具方法)
**/
private staticString[] getFiledName(Object o){
Field[] fields=o.getClass().getDeclaredFields();
String[] fieldNames=newString[fields.length];for(int i=0;i
fieldNames[i]=fields[i].getName();
}returnfieldNames;
}/*根据属性名获取属性值 (工具方法)
**/
private staticObject getFieldValueByName(String fieldName, Object o) {try{
String firstLetter= fieldName.substring(0, 1).toUpperCase();
String getter= "get" + firstLetter + fieldName.substring(1);
Method method= o.getClass().getMethod(getter, newClass[] {});
Object value= method.invoke(o, newObject[] {});returnvalue;
}catch(Exception e) {return null;
}
}//根据传过来的实体及数据库名字自动形成sql并输出
publicString insert(Object t,String sqlname) {
StringBuilder ObjName= newStringBuilder();
StringBuilder ObjValue= newStringBuilder();
String[] fieldNames=getFiledName(t);for(int j=0 ; j
String name = fieldNames[j]; //获取属性的名字
Object value =getFieldValueByName(name,t);if (value == null || "".equals(value) || "null".equals(value)) //这一步是为了剔除掉不未赋值的字段,避免sql冗余,且加强了实体类的复用率
{continue;
}
ObjName.append(name);
ObjValue.append(value);
ObjName.append(",");
ObjValue.append("','");
}
ObjName=ObjName.deleteCharAt(ObjName.length() - 1);
ObjValue=ObjValue.delete(ObjValue.length() - 3,ObjValue.length());
String sql="insert into "+sqlname+" ("+ObjName.toString()+") values ('"+ObjValue.toString()+"')";returnsql;
}//修改方法
public String update(Object t,intid,String sqlname) {
StringBuilder ObjSetVal= newStringBuilder();
String[] fieldNames=getFiledName(t);for(int j=0 ; j
StringBuilder ObjName= newStringBuilder();
StringBuilder ObjValue= newStringBuilder();//遍历所有属性
String name =fieldNames[j];//获取属性的名字
Object value =getFieldValueByName(name,t);
ObjName.append(name);
ObjValue.append(value);if (value == null || "".equals(value) || "null".equals(value))
{continue;
}
ObjSetVal.append(ObjName+"='"+ObjValue+"',");
}
ObjSetVal=ObjSetVal.deleteCharAt(ObjSetVal.length() - 1);
String sql="update "+sqlname+" set "+ObjSetVal+" where id='"+id+"'";returnsql;
}//删除方法
publicString delete(String ids,String sqlname) {
String sql="delete from "+sqlname+" where id in ('"+ids.replace(",", "','")+"')";returnsql;
}