IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mybatis resultMap 自动生成 -> 正文阅读

[大数据]mybatis resultMap 自动生成

参考链接地址
由于实体需要获取父类中字段,这里做了一下调整,获取父类的所有字段,原文可参考上面链接


import com.hsrg.utils.entity.mysql.HsInpatientEntity;
import com.hsrg.web.pr.vo.PatientVo;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
//https://blog.csdn.net/xiewenfeng520/article/details/82490673
public class MyBatisUtil {
	// 获取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) {
			if (field.getType().getName().equals("java.lang.String")) {
				linestr = "<result column=\"" + field.getName() + "\" property=\"" + field.getName()
						+ "\" jdbcType=\"VARCHAR\" />";
			} else {
				linestr = "<result column=\"" + field.getName() + "\" property=\"" + field.getName()
						+ "\" jdbcType=\"INTEGER\" />";
			}
			System.out.println(linestr);
		}

		return str;
	}

	// 获取bean的属性 根据属性评价 resultMap
	// 并将驼峰修改为'_'
	public static String getResultMapNew(Class<?> cls) throws Exception {
		String str = "";
		// 头部 <resultMap id="BaseResultMap" type="com.huajie.entity.sys.SysMenuinfo">
		str = "<resultMap id=" + cls.getSimpleName() + "ResultMap type=" + cls.getName() + "> \r\n";
		// 每一行字符串
		String linestr = "";
//		Field[] declaredFields = cls.getDeclaredFields();
		List<Field> fieldList = new ArrayList<>();
		while (cls != null){
			fieldList.addAll(new ArrayList<>(Arrays.asList(cls.getDeclaredFields())));
			cls = cls.getSuperclass();
		}
		Field[] fields = new Field[fieldList.size()];
		Field[] declaredFields = fieldList.toArray(fields);
		for (Field field : declaredFields) {
			if (field.getType().getName().equals("java.lang.String")) {
				linestr = "<result column=\"" + getUpCaseReplace(field.getName()) + "\" property=\"" + field.getName()
						+ "\" jdbcType=\"VARCHAR\" />";
			} else {
				linestr = "<result column=\"" + getUpCaseReplace(field.getName()) + "\" property=\"" + field.getName()
						+ "\" jdbcType=\"INTEGER\" />";
			}
			linestr += "\r\n";
			str += linestr;
		}
		str+="</resultMap>";
		return str;
	}

	// 获取Base_Column_List sql语句字段
	public static String getColumnList(Class<?> cls) throws Exception {
		// 每一行字符串 <result column="BID_SECTION_CODE" property="BID_SECTION_CODE"
		// jdbcType="VARCHAR" />
		String linestr = "";
		Field[] declaredFields = cls.getDeclaredFields();
		for (Field field : declaredFields) {
			linestr = linestr + field.getName() + ",";
		}
		String str = linestr.substring(0, linestr.length() - 1);
		System.out.println(str);
		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;
	}

	/**
	 * @Description: 输出字符串中的大写字母
	 * @param str
	 */
	private static String getColumnListNew(Class<?> cls) throws Exception {
		// 每一行字符串 <result column="BID_SECTION_CODE" property="BID_SECTION_CODE"
		// jdbcType="VARCHAR" />
		String linestr = "";
		Field[] declaredFields = cls.getDeclaredFields();
		for (Field field : declaredFields) {
			linestr = linestr + getUpCaseReplace(field.getName()) + ",";
		}
		String str = linestr.substring(0, linestr.length() - 1);
		System.out.println(str);
		return str;
	}

	public static void main(String[] args) throws Exception {
		PatientVo a = new PatientVo();
		System.out.println(getResultMapNew(a.getClass()));
		// getColumnListNew(a.getClass());
	}
}

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:37:48  更:2022-03-24 00:39:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:49:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码