mybatis根据property获取column
2021/4/12 10:32:43
本文主要是介绍mybatis根据property获取column,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
蕃薯耀 2016年4月29日 15:44:59 星期五
http://fanshuyao.iteye.com/
xml解析采用Dom4j(Dom4j使用详情见:http://fanshuyao.iteye.com/blog/2279679)
可以在附件中下载
Java代码- 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
- * <p>
- * 如:resultMap id="BaseResultMap" type="com.chinagas.org.beans.User" 中的id
- * </p>
- * @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<Element> resultMaps = root.elements("resultMap");
- for (Element resultMap : resultMaps) {
- if(resultMap != null && resultMap.attributeValue("id").equals(id)){
- @SuppressWarnings("unchecked")
- List<Element> 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
- * <p>
- * 如:resultMap id="BaseResultMap" type="com.chinagas.org.beans.User" 中的id
- * </p>
- * @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<Element> 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<Element> 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/
这篇关于mybatis根据property获取column的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享