mybatisSql转换工具

<!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>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值