我写的是添加数据到数据库
public void addUser(User user) {
String sql = "insert into user values(null,?,?,?,?,?,?,null,null)";
Class cls = user.getClass();
Field[] fs = cls.getDeclaredFields();
List list = new ArrayList<>();
Object o = null;
for (Field f : fs) {
f.setAccessible(true);
try {
o = f.get(user);
if (!(o == null) && !f.getName().equals("id")) {
list.add(o);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
try {
template.update(sql, list.toArray());
} catch (DataAccessException e) {
e.printStackTrace();
}
}
list是有序的,按顺序添加,所以user表字段顺序(从上到下)要和数据库的字段顺序一样
因为filed获取字段添加到list时,然后在执行SQL语句template.update(sql, list.toArray());
才能一一对应 template.update很垃圾,不能传集合只能传数组,所以要把list转成数组,toArray()即可。
我之前还傻逼的new一个Obj数组,然后一个个赋值。哈哈笑死我了。傻吊