public static boolean update(Object obj){
boolean result=true;
Connection conn=null;
PreparedStatement pstmt=null;
Class c=obj.getClass();
String className=c.getSimpleName();
String sql="update t_"+className+" set ";
String sql2=""; String sql3=" where ";
try{ //获取所有的属性
Field[] fs=c.getDeclaredFields();
//获取主键的名字 Field fid=c.getDeclaredField("id");
for (Field f : fs) { f.setAccessible(true);
Object value=f.get(obj);
//判读属性是否为主键
if(f.getName().equals(fid.getName())){
if(value instanceof String){
sql3 += f.getName()+"='"+value+"'";
}else{ sql3 +=f.getName()+"="+value;
}
}else{
//非主键属性
if(value instanceof String){
sql2 += f.getName()+"='"+value+"'"+",";
}else{
sql2 +=f.getName()+"="+value+","; }
}
}
//将最后一个,截取掉
sql2=sql2.substring(0,sql2.length()-1);
sql=sql+sql2+sql3;
conn=DBUtils.getConnection();
System.out.println(sql);
pstmt=conn.prepareStatement(sql);
pstmt.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}
return result;
}