Atitit xml xpath以及mybatis xml mapper脱机解析

目录

1.1. parseStt(String id, Element root) 1

1.2. parseSttContestList(List li, Element root) 1

1.3. ParseInclude(String refid, Element root) 2

String xpath = "/update";

// jdom

SAXBuilder sb = new SAXBuilder();

org.jdom.Document doc = sb.build(xmlf);

Element root = (Element) doc.getRootElement();

  1.  parseStt(String id, Element root)

private static String parseStt(String id, Element root) throws Exception {

String pathFltById = "/mapper/*[@id='{0}']";

// pathFltById = MessageFormat.format(pathFltById, id );

pathFltById=pathFltById.replaceAll("\\{0\\}", id);

Object sql = XPath.selectNodes(root, pathFltById);

Element stt = (Element) XPath.selectSingleNode(root, pathFltById);

List li = stt.getContent();

// System.out.println();

return parseSttContestList(li, root);

}

  1. parseSttContestList(List li, Element root)

private static String parseSttContestList(List li, Element root) throws Exception {

List li_rzt = (List) li.stream().map(o -> {

if (o instanceof Text) {

return ((Text) o).getValue();

}

if (o instanceof Element) {

Element o2 = (Element) o;

if (o2.getName() == "include") {

String refid = o2.getAttribute("refid").getValue();

return ParseInclude(refid, root);

}

}

//   return 0;

return "";

}).collect(Collectors.toList());

return Joiner.on(" ").join(li_rzt);

}

  1. ParseInclude(String refid, Element root) 

private static Object ParseInclude(String refid, Element root) {

try {

// MessageFormat.format("我是{0},我来自{1}", "中国人", "中国");

String pathFltById = "/mapper/sql[@id='{0}']/text()";

pathFltById=pathFltById.replaceAll("\\{0\\}", refid);

// pathFltById = MessageFormat.format(pathFltById, refid, "中国");

//msg fomt cant use in xpath...bcz single quore is missed..

Text sql;

sql = (Text) XPath.selectSingleNode(root, pathFltById);

return sql.getValue();

} catch (JDOMException e) {

// TODO Auto-generated catch block

e.printStackTrace();

throw new RuntimeException(e);

}

}

Atitit xml xpath以及mybatis xml mapper脱机解析 目录 1.1. parseStt(String id, Element root) 1 1.2. parseStt相关推荐

  1. java mapper xml if_bug篇——Mybatis中Mapper.xml文件的if判断问题

    一.问题描述 上述表达,当传入参数validCoupon的值为"1"时,仍然不能执行if判断下的sql语句. 二.剖析原因 public class ExpressionEvalu ...

  2. 手敲Mybatis(三)-DataSource的解析创建和使用

    本章节主要是解决通过xml配置可处理sql语句,所以最主要的就是解析xml,一个解析并放入对应数据源对象DataSourceFactory和事务对象TransactionFactory,一个处理Sql ...

  3. Mybatis工作流程,附带mybatis的mapper文件和config配置文件模板。mapper文件和dao接口的关系——xml中的namespace和sql标签id命名要求。

    1. Mybatis工作流程 1.1 使用MySQL创建数据库girls并生成一个表boys,如下图. 1.2 创建该表对应的简单实体类Boys,如下图. 1.3 创建Dao接口以及和接口同名的map ...

  4. Mybatis学习--Mapper.xml映射文件

    简介 Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 映射文件中有很多属性,常用的就是parameterType(输入类型 ...

  5. Mapper.xml映射文件---Mybatis学习笔记(八)

    Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. parameterType(输入类型) 1.#{}与${} #{}实现的是 ...

  6. MyBatis框架 mybatis.xml与Mapper.xml基本架构

    mybatis.xml 该文件一般位于src同级目录下,便于加载 DTD <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Conf ...

  7. mybatis的mapper接口与xml传参问题

    本文来说下mybatis的mapper接口与xml传参问题 文章目录 单个基础数据类型的传参 多个基础数据类型的传参 单个javabean 多个javabean 单个基础数据类型的传参 也就是说,接口 ...

  8. 关于mybatis的mapper和mapper.xml注入spring托管的方法 超详细

    需要在springApplication.xml文件下配置这个bean <!-- MapperFactoryBean:根据mapper接口生成的代理对象 --><bean id=&q ...

  9. idea中 mybatis 的 mapper.xml 新建没有 头文件

    idea中 mybatis 的 mapper.xml 新建没有 头文件 解决步骤: 1.直接 settings 2.直接 选择 MybatisMapper 添加: <?xml version=& ...

  10. Mybatis实现*mapper.xml热部署-分子级更新

    需求: 项目在开发阶段或是修复bug阶段,会有修改mybatis的mapper.xml的时候,修改一般情况都要重启才能生失效,如果是分布式项目重启有时会耗时很久,都是无尽的等待.如果频繁修改,那么时间 ...

最新文章

  1. TensorFlow 自动文本摘要生成模型,2016
  2. Microsoft Dynamics CRM server 2013 一般销售流程之 报价单功能详解
  3. 深入理解kestrel的应用
  4. C++之类模板最简单的使用
  5. 一个项目部署多个节点会导致锁失效么_Redis分布式锁
  6. 基于AVR单片机PWM功能的数控恒流源研制
  7. (转)淘淘商城系列——使用maven tomcat插件启动聚合工程
  8. python opencv 内存泄露_python - OpenCV Python裁剪图像 - 堆栈内存溢出
  9. 【前端】CKeditor屏蔽“浏览服务器”功能
  10. mooc中的习题--然后是几点
  11. cocos2dx windows phone平台下CCLabelTTF自己主动换行的实现
  12. 解决Android Studio Import Sample网络连接失败问题
  13. 云课堂智慧职教自动签到
  14. xp计算机共享能否指定用户,XP怎么设置局域网共享?
  15. 由2003年的一篇讲座笔记
  16. java poi生成word
  17. 感动13亿中国人的芭蕾舞小女孩
  18. 安卓RatingBar的使用(评分控件)
  19. 中小园区网配置案例 超详细
  20. 解决myeclipse导入maven工程时问题:No marketplace entries found to handle maven-compiler-plugin:2.3.2

热门文章

  1. sql 安装程序文件_【病毒文件分析】MedusaLocker勒索病毒,小心全网被加密
  2. qt中的信号都需要emit触发吗_[Vue笔记] $emit 与 $event
  3. java初级指令集,《Java虛擬機規范》-字節碼指令集
  4. datetime只要年月python_Python 的日期和时间处理
  5. requests第三方库在测试中的使用
  6. IntelliJ IDEA下使用JSTL标签库方法
  7. Oracle数据库REDO损坏ora-00333修复手札
  8. Js中的window.parent ,window.top,window.self详解
  9. Android中生成库文件与移除以及导入jar包重复问题
  10. Java-XML解析第一篇主流开源类库解析XML