博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis根据property获取column
阅读量:7023 次
发布时间:2019-06-28

本文共 4397 字,大约阅读时间需要 14 分钟。

mybatis根据property获取column

mybatis根据类的属性获取xml文件中对应的column

mybatis获取xml文件中property对应的column

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

蕃薯耀 2016年4月29日 15:44:59 星期五

http://fanshuyao.iteye.com/

 

xml解析采用Dom4j(Dom4j使用详情见:http://fanshuyao.iteye.com/blog/2279679)

 

可以在附件中下载

package xxx.xxx.common.utils;import java.util.Date;import java.util.List;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class XmlUtils {		/**	 * 根据类的属性名找表的列名(取一个的时候可以使用此方法)	 * @param fileName 类对应的Mapper xml文件	 * @param id  唯一的id	 * 

* 如:resultMap id="BaseResultMap" type="com.chinagas.org.beans.User" 中的id *

* @param property 属性名(对应的Java对象属性名) * @return */ public static String getMapperColumnByProperty(String fileName, String id, String property){ try { SAXReader saxReader = new SAXReader(); Document document = saxReader.read(XmlUtils.class.getClassLoader().getResourceAsStream(fileName)); if(document != null){ Element root = document.getRootElement(); if(root != null){ @SuppressWarnings("unchecked") List
resultMaps = root.elements("resultMap"); for (Element resultMap : resultMaps) { if(resultMap != null && resultMap.attributeValue("id").equals(id)){ @SuppressWarnings("unchecked") List
properties = resultMap.elements(); for (Element prop : properties) { if(prop != null && prop.attributeValue("property").equals(property)){ return prop.attributeValue("column"); } } } } } } } catch (Exception e) { e.printStackTrace(); } return null; } /** * 返回ResultMap对应Element对象(取2次以上的时候,建议先把Element对象找到,再根据此Element对象再去找column,效率高很多) * @param fileName 类对应的Mapper xml文件 * @param id 唯一的id *

* 如:resultMap id="BaseResultMap" type="com.chinagas.org.beans.User" 中的id *

* @return */ public static Element getResultMapElement(String fileName, String id){ try { SAXReader saxReader = new SAXReader(); Document document = saxReader.read(XmlUtils.class.getClassLoader().getResourceAsStream(fileName)); if(document != null){ Element root = document.getRootElement(); if(root != null){ @SuppressWarnings("unchecked") List
resultMaps = root.elements("resultMap"); for (Element resultMap : resultMaps) { if(resultMap != null && resultMap.attributeValue("id").equals(id)){ return resultMap; } } } } } catch (Exception e) { e.printStackTrace(); } return null; } /** * 在Element根据property找表的列名(和方法getResultMapElement()结合使用,多次取Column时效率高出很多倍) * @param resultMapElement Mapper xml文件解析后得到的Element对象(方法:getResultMapElement()) * @param property 属性名(对应的Java对象属性名) * @return */ public static String getMapperColumnByElement(Element resultMapElement, String property){ try { if(resultMapElement != null){ @SuppressWarnings("unchecked") List
properties = resultMapElement.elements(); for (Element prop : properties) { if(prop != null && prop.attributeValue("property").equals(property)){ return prop.attributeValue("column"); } } } } catch (Exception e) { e.printStackTrace(); } return null; } public static void main(String[] args) { long startTime = new Date().getTime(); /*System.out.println(getMapperColumnByProperty("UserMapper.xml","BaseResultMap", "userName")); System.out.println(getMapperColumnByProperty("UserMapper.xml","BaseResultMap", "loginName")); System.out.println(getMapperColumnByProperty("UserMapper.xml","BaseResultMap", "orgName")); System.out.println(getMapperColumnByProperty("UserMapper.xml","BaseResultMap", "sex"));*/ Element e = getResultMapElement("UserMapper.xml","BaseResultMap"); System.out.println(getMapperColumnByElement(e, "userName")); System.out.println(getMapperColumnByElement(e, "loginName")); System.out.println(getMapperColumnByElement(e, "orgName")); System.out.println(getMapperColumnByElement(e, "sex")); long endTime = new Date().getTime(); System.out.println("所用的时间间隔是:"+ (endTime-startTime)); } }

 

 

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

蕃薯耀 2016年4月29日 15:44:59 星期五

http://fanshuyao.iteye.com/

转载于:https://www.cnblogs.com/fanshuyao/p/6227136.html

你可能感兴趣的文章
shell脚本之-------------if 语句参数
查看>>
一年来,3D电视给力降价
查看>>
多业务安全路由器网关走俏的原因
查看>>
mysql自定义函数
查看>>
我的友情链接
查看>>
C# 25个必须知道的基础概念1
查看>>
this指针
查看>>
centos 零碎学习小记 7.
查看>>
我的友情链接
查看>>
通用权限管理系统组件遭遇VS2008是英文版,OS是日语XP后。。
查看>>
优化JAVA代码的效率
查看>>
Vim(Vi)编辑器的操作大全(2)——修改档案。
查看>>
我的友情链接
查看>>
Mysql修改存储过程相关权限问题
查看>>
百万宝贝影评感受
查看>>
海量数据高性能分页
查看>>
命令行解析(os.Args,使用flag获取复杂参数)
查看>>
helpful flooring solutions to your home
查看>>
浅析二三线城市地方社区栏目分类的技巧
查看>>
我的友情链接
查看>>