Can not set int field bean.类名.属性 to java.lang.String
public class BaseDao<T> {
public int update(String sql, Object... objs) {
return -1;
}
public <T> List<T> getAll(Class<T> clazz, String sql, Object... args) throws SQLException, IllegalAccessException, InstantiationException, NoSuchFieldException {
List<T> list = new ArrayList<>();
Connection connection = JDBCUtils1.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSetMetaData metaData = preparedStatement.getMetaData();
int columnCount = metaData.getColumnCount();
if (args != null && args.length > 0) {
for (int i = 0; i < args.length; i++) {
preparedStatement.setObject(i + 1, args[i]);
}
}
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
T instance = clazz.newInstance();
for (int i = 0; i < columnCount; i++) {
String columnLabel = metaData.getColumnLabel(i + 1);
Object value = resultSet.getObject(columnLabel);
Field filed = clazz.getDeclaredField(columnLabel);
filed.setAccessible(true);
filed.set(instance, value);
}
list.add(instance);
}
return list;
}
}