时间:2021-05-20
Mybatis log printf工具网页地址: http:///element-ui/lib/index.js"></script> <style> #app { margin-top: 70px; display: flex; justify-content: space-evenly; align-items: center; font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif; } </style></head><body> <div id="app"> <el-input type="textarea" v-model="pre" placeholder="请复制输入Mybatis打印的日志,须完整Prepareing语句和Parameter语句" :rows="28" style="width: 600px"></el-input> <el-button type="success" @click="convert" style="height: 60px; width: 80px;">转换</el-button> <el-input type="textarea" v-model="res" placeholder="输出结果" :rows="28" style="width: 600px"></el-input> </div> <script type="text/javascript"> const app = new Vue({ el: '#app', data() { return { // 原始str pre: '', // 输出结果 res: '' } }, methods: { convert() { const str = this.pre if (str.indexOf('Preparing') == -1 || str.indexOf('Parameters') == -1) { this.$message({ message: '请将Preparing和Parameters语句复制进来', type: 'error', center: true }) } // str为完整的三行或两行SQL 提取预编译语句 let prepare = str.substring(str.indexOf('Preparing') + 11, str.indexOf('\n')) // 获取参数,去空格 const params = str.substring(str.indexOf('Parameters') + 12, index(str, '\n', 2)).replace(/ /g, '') // 参数数组 const array = params.split(',') // 循环替换占位符,字符串方式替换每次替换第一个 array.map(item => { // 获取每个参数值 let newValue = item.substring(0, item.indexOf('(')) // 获取参数类型 const type = item.substring(item.indexOf('(') + 1, item.indexOf(')')) if ('String' === type) { newValue = "'" + newValue + "'" } prepare = prepare .replace('?', newValue) }) this.res = prepare } } }) // 返回字符串str中的第n字符串reg在str中的索引值index function index(str, reg, n) { if (!str || !reg || n <= 0) return -1 // 先求出第一个,再递归n-1 if (n === 1) { return str.indexOf(reg) } // 注意n-1的索引后一定要加1,负责会一直是第一个reg的索引 return str.indexOf(reg, index(str, reg, n - 1) + 1) } // 测试index函数 const str = 'hello world ok' const reg = 'o' console.log(index(str, reg, 3)) </script></body></html>
总结
到此这篇关于Mybatis日志参数快速替换占位符工具的文章就介绍到这了,更多相关Mybatis日志参数替换占位符内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在使用Mybatis开发项目时,由于避免出现SQL注入,大部分情况下都是使用#{}占位符的方式传参。所以日志打印SQL时,打印的也是占位符,如:如果SQL比较复
1、关于#{}占位符先来看以下的示例,该示例是MyBatis中的SQL映射配置文件(Mapper配置文件),在该配置中使用了#{}占位符。SELECT*FROM
#{}表示一个占位符即?,可以有效防止sql注入。在使用时不需要关心参数值的类型,mybatis会自动进行java类型和jdbc类型的转换。#{}可以接
格式化字符串由占位符和普通字符组合而成。占位符由'%'打头,动词结尾。占位符由五类元素组成:标志位(flag),宽度,精度,参数索引,以及动词。除了最后的动词之
Publisher可以使用图片占位符占位置,该怎么使用占位符呢?下面我们就来看看详细的教程。软件名称:Microsoftofficepublisher20106