// 获取bean的属性 根据属性评价 resultMap
public static String getResultMap(Class<?> cls) throws Exception {
String str = "";
// 每一行字符串 <result column="BID_SECTION_CODE" property="BID_SECTION_CODE"
// jdbcType="VARCHAR" />
String linestr = "";
Field[] declaredFields = cls.getDeclaredFields();
for (Field field : declaredFields) {
//转化成大写加_得数据库字段名
String name = getUpCaseReplace(field.getName()).toUpperCase();
if (field.getType().getName().equals("java.lang.String")) {
linestr = "<result column=\"" + name + "\" property=\"" + field.getName()
+ "\" jdbcType=\"VARCHAR\" />";
} else if (field.getType().getName().equals("java.lang.Integer")){
linestr = "<result column=\"" + name + "\" property=\"" + field.getName()
+ "\" jdbcType=\"INTEGER\" />";
}else if (field.getType().getName().equals("java.lang.Double")){
linestr = "<result column=\"" + name + "\" property=\"" + field.getName()
+ "\" jdbcType=\"NUMERIC\" />";
}else {
linestr = "<result column=\"" + name + "\" property=\"" + field.getName()
+ "\" jdbcType=\"TIMESTAMP\" />";
}
System.out.println(linestr);
}
return str;
}
/**
* 将字符串中的驼峰写法替换成'_'
*
* @param str
* @return
*/
private static String getUpCaseReplace(String str) {
List<String> listChar = getUpCaseList(str);
for (int i = 0; i < listChar.size(); i++) {
str = str.replace(listChar.get(i), "_" + listChar.get(i).toLowerCase());
}
return str;
}
/**
* @Description: 输出字符串中的大写字母
* @param str
*/
private static List<String> getUpCaseList(String str) {
List<String> listChar = new ArrayList<String>();
// 转为char数组
char[] ch = str.toCharArray();
// 得到大写字母
for (int i = 0; i < ch.length; i++) {
if (ch[i] >= 'A' && ch[i] <= 'Z') {
listChar.add(String.valueOf(ch[i]));
}
}
return listChar;
}
public static void main(String[] args) throws Exception {
getResultMap(Test.class);
}
最后结果是这个样子