public Boolean Regist(Student student) throws IllegalAccessException, SQLException {
Integer flag=-1;
StringBuffer stringBuffer=new StringBuffer("insert into tb_student (");
Class clazz=student.getClass();
Field[] declaredFields = clazz.getDeclaredFields();
for (Field field : declaredFields) {
field.setAccessible(true); //运行修改私有类字段值
String key = field.getName();//获取字段名
Object value=field.get(student);//获取字段值
if (value!=null){
stringBuffer.append(Stringutil.toSqlString(key) +",");
}//根据条件拼接sql
}
stringBuffer=stringBuffer.deleteCharAt(stringBuffer.length()-1);
stringBuffer.append(") values(");
for (Field declaredField : declaredFields) {
declaredField.setAccessible(true);
Object value=declaredField.get(student);
if (value!=null){
stringBuffer.append("'"+value+"',");
}
}
stringBuffer=stringBuffer.deleteCharAt(stringBuffer.length()-1);
stringBuffer.append(");");
System.out.println(stringBuffer);
Connection connection= DButil.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(stringBuffer.toString());
flag=preparedStatement.executeUpdate();
if (flag==-1){
return false;
}
return true;
}
stringUtil类:用来修改字符串格式以便映射数据库
public class Stringutil {
public static String toSqlString(String str){
str= str.replaceAll("([A-Z])","_$1").toLowerCase();
return str;
}
}