一、首字母大写
二、数据库中使用 “_ ”方式 ,java中使用驼峰式命名
三、使用ResultSetMetaData 来获取ResultSet对象中的每个属性列的信息
四、使用BeanUtils来设置某个对象的属性的值
package utils;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
public class EntityUtils {
/**
* 把结果集中的数据填充到对象中
*
* @param rs
* @param obj
*/
public static void fillEntity(ResultSet rs, Object obj) throws Exception {
/**
* 想办法知道查询的结果里有多少列,列名是什么
* 返回结果集的元数据, 元数据中包含有查询得到的
*/
ResultSetMetaData rsmd = rs.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
// 获得列名,列的类型等信息
String columnName = rsmd.getColumnName(i);
Object columnValue = rs.getObject(columnName);
// 将获得的列名转化为对象对应的成员变量名 注意数据库列名和类对象成员变量的对应关系
String propertyName = toCamel(columnName);
if (columnValue != null) {
// 给成员变量赋值
BeanUtils.setProperty(obj, propertyName, columnValue);
}
}
}
/**
* 把下划线的命名变成驼峰命名方式
*
* @param name
* @return
*/
private static String toCamel(String name) {
name = name.toLowerCase();
String[] arr = name.split("_");
String camelName = arr[0];
if (arr.length > 1) {
for (int i = 1; i < arr.length; i++) {
// StringUtils.capitalize(String str)将首字母大写
camelName += StringUtils.capitalize(arr[i]);
}
}
return camelName;
}
}