image.png

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>
    6. mysql格式化
    7. </title>
    8. <script>
    9. function mysqlformet(obj){
    10. var textVa = obj.value;
    11. //獲取帶問號的SQL語句
    12. var statementStartIndex = textVa.indexOf('Preparing: ');
    13. var statementEndIndex = textVa.length-1;
    14. for(var i = statementStartIndex; i< textVa.length;i++){
    15. if(textVa[i] == "\n"){
    16. statementEndIndex =i;
    17. break;
    18. }
    19. }
    20. var statementStr = textVa.substring(statementStartIndex+"Preparing: ".length,statementEndIndex);
    21. console.log(statementStr);
    22. //獲取參數
    23. var parameterStarIndex = textVa.indexOf('Parameters: ');
    24. var parameterEndIndex = textVa.length -1 ;
    25. for(var i =parameterStarIndex; i<textVa.length;i++){
    26. if(textVa[i] == '\n'){
    27. parameterEndIndex =i;
    28. break;
    29. }else{
    30. console.log(textVa[i]);
    31. }
    32. }
    33. var parametersStr=textVa.substring(parameterStarIndex+"Parameters: ".length,parameterEndIndex);
    34. parametersStr =parametersStr.split(",");
    35. console.log(parametersStr);
    36. for(var i =0;i<parametersStr.length; i++){
    37. //如果數據中帶括號將使用其他邏輯
    38. tempStr=parametersStr[i].substring(0, parametersStr[i].indexOf("("));
    39. //獲取括號中的內容
    40. typeStr = parametersStr[i].substring(parametersStr[i].indexOf("(") +1,parametersStr[i].indexOf(")"));
    41. //如果為字符串類型
    42. if(typeStr == "String" || typeStr == "Timestamp"){
    43. statementStr=statementStr.replace("?","'" + tempStr.trim() + "'");
    44. }else{
    45. //數值類型
    46. statementStr = statementStr.replace("?",tempStr.trim());
    47. }
    48. }
    49. console.log(statementStr);
    50. document.getElementById("d1").innerHTML=statementStr;
    51. return textVa;
    52. }
    53. function copySQL(){
    54. var SQL = document.getElementById("d1");
    55. SQL.select();//選擇對象
    56. document.execCommand("Copy");
    57. var msg = document.getElementById("msg");
    58. msg.innerHTML="已複製到剪貼板";
    59. setTimeout(function(){
    60. msg.innerHTML="";
    61. },3000);
    62. }
    63. function clearLog(obj){
    64. obj.select();
    65. obj.value="";
    66. }
    67. </script>
    68. </head>
    69. <body>
    70. <h2><font color="#00bfff">輸入mybatis sql日誌:</font></h2>
    71. <textarea style="font-size: 20px;" id="sqlLog" cols="140" rows="13"></textarea>
    72. <div style="border: 0px deepskyblue solid; width: 1425px; height: 50px;text-align: right;">
    73. <button style="color: mediumblue; width: 100px;height: 60px;" type="button" onclick="clearLog(document.getElementById('sqlLog'))">清空</button>
    74. <button style="color: mediumblue;width: 100px; height:60px " type="submit" onclick="mysqlformet(document.getElementById('sqlLog'))">解析SQL</button>
    75. </div>
    76. <h2><font color="#32出的2">解析為可執行SQL:</font></h2>
    77. <textarea style="font-size: 20px;" id="d1" cols="140" rows="13"></textarea>
    78. <div style="border: 0px deepskyblue solid; width: 1425px; height: 50px;text-align: right;">
    79. <button style="color: mediumblue; width: 100px;height: 60px;" type="button" onclick="copySQL()">複製SQL</button>
    80. </div>
    81. <div id="msg" style="color: cornflowerblue; border: 0px black solid;width: 800px; height: 20px; text-align: right; font-style: initial; font-size: large;"></div>
    82. </body>
    83. </html>

    转发原文:https://blog.csdn.net/x541211190/article/details/107410409?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-6-107410409.pc_agg_new_rank&utm_term=parameters+sql%E5%A1%AB%E5%85%85&spm=1000.2123.3001.4430