<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>mybatisSql转换工具</title>
<style >
textarea{width:100%;min-height:150px;height:100%}
.btn_contain{margin:0 30%;width:100%}
.btn{width:200px;margin-left:10px;height:40px;}
</style>
<script type="text/javascript">
function $(id){
return document.getElementById(id);
}
function parsePara(p){
var result;
var m=p.match(/(?:\((.+)\))$/i)[1];
console.log("para type is :"+m);
result= p.replace(/(\(.+\))$/i,"");
switch (m) {
case "String":
result="'"+result+"'";
break;
case "Integer":
break;
case "Date":
result="STR_TO_DATE('"+result+"','%Y-%m-%d %H:%i:%s')";
break;
default:
break;
}
console.log(result);
return result;
}
function parseParas(para){
var ps=[];
var p;
var result=para.replace(/.+?(Parameters[\s]*(?=:)):/,"");
//console.log(result);
var t=result.match(/(.+?\(.+?\)(?=[\s]*\,))|(.+?\(.+?\)$)/g);
console.log(t);
var len=t.length;
if(len>0){
for (var i=0 ;i<len;i++){
p= t[i].replace(/,$/,"").replace(/^[\,]/,"").replace(/^[\s]*||[\s]*$/,"");
console.log(p)
ps.push(parsePara(p));
}
}
console.log(ps);
return ps;
}
function parseSql(sql){
var result=sql.replace(/.+?(Preparing[\s]*(?=:)):/,"");
console.log(result);
return result;
}
function getRealSql(paraMeter,sqlOrg){
var realSql=parseSql(paraMeter);
var realParas=parseParas(sqlOrg);
var len = realParas.length;
for(var i=0;i<len;i++){
realSql=realSql.replace("?",realParas[i]);
}
console.log(realSql);
return realSql;
}
function format(){
if(event.keyCode=='13'){
var sql=$("sql").value;
var para=$("para").value;
var fomatSql=getRealSql(sql,para);
$("result").innerHTML=fomatSql;
}
}
function converSql(){
var sql=$("sql").value;
var para=$("para").value;
var fomatSql=getRealSql(sql,para);
$("result").innerHTML=fomatSql;
}
function reset(){
var sql=$("sql").value = "";
var para=$("para").value = "";
$("result").innerHTML= "";
}
</script>
</head>
<body>
<p>
<h2>输入SQL log日志 <input type="button" οnclick="reset();" value="重置"></input></h2>
<div>
例如:2015-10-29 16:03:15 CST DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger 132 debug - ==> Preparing: SELECT count(*) clue WHERE t1.clue_sts_cde IN ( ? , ? , ? , ? ) AND t1.sys_id = ? AND ( 0=1 OR t1.clue_sts_cde IN ( ? ) OR t1.found_psn_id = ? OR t1.udtk_psn_id = ? ) GROUP BY t1.clueuuid ) view_clue
</div>
<textarea id="sql" οnkeydοwn="format()" placeholder="输入SQL log日志,例如:2015-10-29 16:03:15 CST DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger 132 debug - ==> Preparing: SELECT count(*) clue WHERE t1.clue_sts_cde IN ( ? , ? , ? , ? ) AND t1.sys_id = ? AND ( 0=1 OR t1.clue_sts_cde IN ( ? ) OR t1.found_psn_id = ? OR t1.udtk_psn_id = ? ) GROUP BY t1.clueuuid ) view_clue">输入SQL log日志,例如:2015-10-29 16:03:15 CST DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger 132 debug - ==> Preparing: SELECT count(*) clue WHERE t1.clue_sts_cde IN ( ? , ? , ? , ? ) AND t1.sys_id = ? AND ( 0=1 OR t1.clue_sts_cde IN ( ? ) OR t1.found_psn_id = ? OR t1.udtk_psn_id = ? ) GROUP BY t1.clueuuid ) view_clue
</textarea>
</p>
<p>
<h2>输入SQL参数</h2>
<div>例如:
2015-10-29 16:03:15 CST DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger 132 debug - ==> Parameters: 0(Integer), 1(String), 2(String), 3(String), OA-SYS(String), 2013-03-03(Date), 2c9180824ed3a3e3014ed8627aed005e(String), 2c9180824ed3a3e3014ed8627aed005e(String), 2c9180824ed3a3e3014ed8627aed005e(String), 2c9180824ed3a3e3014ed8627aed005e(String)</div>
<textarea id="para" placeholder="输入mybatis参数,例如:2015-10-29 16:03:15 CST DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger 132 debug - ==> Parameters: 0(Integer), 1(String), 2(String), 3(String), OA-SYS(String), 2013-03-03(Date), 2c9180824ed3a3e3014ed8627aed005e(String), 2c9180824ed3a3e3014ed8627aed005e(String), 2c9180824ed3a3e3014ed8627aed005e(String), 2c9180824ed3a3e3014ed8627aed005e(String)">输入mybatis参数,例如:2015-10-29 16:03:15 CST DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger 132 debug - ==> Parameters: 0(Integer), 1(String), 2(String), 3(String), OA-SYS(String), 2013-03-03(Date), 2c9180824ed3a3e3014ed8627aed005e(String), 2c9180824ed3a3e3014ed8627aed005e(String), 2c9180824ed3a3e3014ed8627aed005e(String), 2c9180824ed3a3e3014ed8627aed005e(String)
</textarea>
</p>
<div class="btn_contain">
<button class="btn" οnclick="converSql()" value="转换">转换</button>
<button class="btn" οnclick="reset();" value="重置">重置</button>
</div>
<p>
<h2>转换结果:</h2>
<div id="result" style="margin-bottom:20px;padding:10px;border:2px solid red">
SELECT count(*) clue WHERE t1.clue_sts_cde IN ( 0 , '1' , '2' , '3' ) AND t1.sys_id = 'OA-SYS' AND ( 0=1 OR t1.clue_sts_cde IN ( STR_TO_DATE('2013-03-03','%Y-%m-%d %H:%i:%s') ) OR t1.found_psn_id = '2c9180824ed3a3e3014ed8627aed005e' OR t1.udtk_psn_id = '2c9180824ed3a3e3014ed8627aed005e' ) GROUP BY t1.clueuuid ) view_clue
</div>
</p>
</body>
</html>
mybatisSql转换工具
最新推荐文章于 2024-07-29 14:21:29 发布