工作需要:要写一个生成sql语句的工具类,
入参 是封装数据的实体类,和表名,
返回 sql语句
实现方法是通过反射来获取实体类的字段集合,然后判断实体类中相应字段是否有值,有就拼接到字符串中。
public class AutoSqlUtils {
//生成简单的查询语句
public static String generaSelect(Object object,String tableName) throws IllegalAccessException {
String sql = " select * from "+tableName;
//获取对象所有的字段
Field[] fields = object.getClass().getDeclaredFields();
//辅助值判断是否需要加and
boolean andflag=false;
//辅助值判断加where
boolean whereFlag=true;
for (int i = 1; i < fields.length; i++) {
//设置允许访问
fields[i].setAccessible(true);
//判断字段是否为空
if(fields[i].get(object)!=null&&!"".equals(fields[i].get(object))){
//判断要不要加where
if(whereFlag){
sql+=" where ";
}
//判断要不要加and
if(andflag){
sql+=" and ";
}
andflag=true;
whereFlag=false;
sql+=fields[i].getName()+"="+"'"+fields[i].get(object)+"'";
}
}
return sql;
}
}