Atitit xml xpath以及mybatis xml mapper脱机解析 目录 1.1. parseStt(String id, Element root) 1 1.2. parseStt
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();
- 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);
}
- 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);
}
- 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相关推荐
- java mapper xml if_bug篇——Mybatis中Mapper.xml文件的if判断问题
一.问题描述 上述表达,当传入参数validCoupon的值为"1"时,仍然不能执行if判断下的sql语句. 二.剖析原因 public class ExpressionEvalu ...
- 手敲Mybatis(三)-DataSource的解析创建和使用
本章节主要是解决通过xml配置可处理sql语句,所以最主要的就是解析xml,一个解析并放入对应数据源对象DataSourceFactory和事务对象TransactionFactory,一个处理Sql ...
- Mybatis工作流程,附带mybatis的mapper文件和config配置文件模板。mapper文件和dao接口的关系——xml中的namespace和sql标签id命名要求。
1. Mybatis工作流程 1.1 使用MySQL创建数据库girls并生成一个表boys,如下图. 1.2 创建该表对应的简单实体类Boys,如下图. 1.3 创建Dao接口以及和接口同名的map ...
- Mybatis学习--Mapper.xml映射文件
简介 Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 映射文件中有很多属性,常用的就是parameterType(输入类型 ...
- Mapper.xml映射文件---Mybatis学习笔记(八)
Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. parameterType(输入类型) 1.#{}与${} #{}实现的是 ...
- MyBatis框架 mybatis.xml与Mapper.xml基本架构
mybatis.xml 该文件一般位于src同级目录下,便于加载 DTD <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Conf ...
- mybatis的mapper接口与xml传参问题
本文来说下mybatis的mapper接口与xml传参问题 文章目录 单个基础数据类型的传参 多个基础数据类型的传参 单个javabean 多个javabean 单个基础数据类型的传参 也就是说,接口 ...
- 关于mybatis的mapper和mapper.xml注入spring托管的方法 超详细
需要在springApplication.xml文件下配置这个bean <!-- MapperFactoryBean:根据mapper接口生成的代理对象 --><bean id=&q ...
- idea中 mybatis 的 mapper.xml 新建没有 头文件
idea中 mybatis 的 mapper.xml 新建没有 头文件 解决步骤: 1.直接 settings 2.直接 选择 MybatisMapper 添加: <?xml version=& ...
- Mybatis实现*mapper.xml热部署-分子级更新
需求: 项目在开发阶段或是修复bug阶段,会有修改mybatis的mapper.xml的时候,修改一般情况都要重启才能生失效,如果是分布式项目重启有时会耗时很久,都是无尽的等待.如果频繁修改,那么时间 ...
最新文章
- TensorFlow 自动文本摘要生成模型,2016
- Microsoft Dynamics CRM server 2013 一般销售流程之 报价单功能详解
- 深入理解kestrel的应用
- C++之类模板最简单的使用
- 一个项目部署多个节点会导致锁失效么_Redis分布式锁
- 基于AVR单片机PWM功能的数控恒流源研制
- (转)淘淘商城系列——使用maven tomcat插件启动聚合工程
- python opencv 内存泄露_python - OpenCV Python裁剪图像 - 堆栈内存溢出
- 【前端】CKeditor屏蔽“浏览服务器”功能
- mooc中的习题--然后是几点
- cocos2dx windows phone平台下CCLabelTTF自己主动换行的实现
- 解决Android Studio Import Sample网络连接失败问题
- 云课堂智慧职教自动签到
- xp计算机共享能否指定用户,XP怎么设置局域网共享?
- 由2003年的一篇讲座笔记
- java poi生成word
- 感动13亿中国人的芭蕾舞小女孩
- 安卓RatingBar的使用(评分控件)
- 中小园区网配置案例 超详细
- 解决myeclipse导入maven工程时问题:No marketplace entries found to handle maven-compiler-plugin:2.3.2
热门文章
- sql 安装程序文件_【病毒文件分析】MedusaLocker勒索病毒,小心全网被加密
- qt中的信号都需要emit触发吗_[Vue笔记] $emit 与 $event
- java初级指令集,《Java虛擬機規范》-字節碼指令集
- datetime只要年月python_Python 的日期和时间处理
- requests第三方库在测试中的使用
- IntelliJ IDEA下使用JSTL标签库方法
- Oracle数据库REDO损坏ora-00333修复手札
- Js中的window.parent ,window.top,window.self详解
- Android中生成库文件与移除以及导入jar包重复问题
- Java-XML解析第一篇主流开源类库解析XML