HTML實(shí)現(xiàn)代替IDEA插件MyBatis Log Plugin

源碼:

<!DOCTYPE html>
 <html>
 <head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript">

        function multiTransefer(inputText) {
            // 將傳入的字符串根據(jù)MyBatis的標(biāo)識拆分成數(shù)組
            var mybatisSQLTexts = new Array();

            while (inputText.lastIndexOf('Preparing: ') > -1) {

                // 因?yàn)槭菑奈膊拷厝。孕枰獜臄?shù)組的頭部添加
                mybatisSQLTexts.unshift(inputText.substring(inputText.lastIndexOf('Preparing: ')));


                // console.log('lastIndexOf:'+inputText.lastIndexOf('Preparing: '));
                // console.log('substring 0:'+inputText.substring(0, inputText.lastIndexOf('Preparing: ')));
                // console.log('substring 1:'+inputText.substring(inputText.lastIndexOf('Preparing: ')));
                inputText = inputText.substring(0, inputText.lastIndexOf('Preparing: '));

            }
            // console.log(mybatisSQLTexts);

            var radio = document.getElementById("flag");
            var selectvalue = radio.checked;   //  selectvalue為radio中選中的值
            // 將數(shù)組中的字符串挨個處理,以數(shù)組形式返回
            var retStr = null;
            var tmpSQL = "";
            for (var i = 0; i < mybatisSQLTexts.length; i++) {
                retStr = f(mybatisSQLTexts[i]);
                if (retStr != null && retStr != "") {
                    tmpSQL += retStr + '\n\n';
                }
            }
            if (selectvalue) {
                if (tmpSQL != null && tmpSQL != "") {
                    document.getElementById("d1").value += tmpSQL;
                }
            } else {
                document.getElementById("d1").value = '\n' + tmpSQL;
            }
            
        }

        // 單句的問號生成SQL
        function f(textVa){
            // 獲取帶問號的SQL語句
            var statementStartIndex = textVa.indexOf('Preparing: ');
            var statementEndIndex = textVa.length-1;
            for(var i = statementStartIndex; i < textVa.length; i++) {
                if(textVa[i] == "\n") {
                    statementEndIndex = i;
                    break;
                }
            }
            var statementStr = textVa.substring(statementStartIndex+"Preparing: ".length, statementEndIndex);
            // console.log(statementStr);
            //獲取參數(shù)
            var parametersStartIndex = textVa.indexOf('Parameters: ');
            var parametersEndIndex = textVa.length-1;
            for(var i = parametersStartIndex; i < textVa.length; i++) {
                if(textVa[i] == "\n") {
                    parametersEndIndex = i;
                    break;
                } else {
                    // console.log(textVa[i]);
                }
            }
            var parametersStr = textVa.substring(parametersStartIndex+"Parameters: ".length, parametersEndIndex);
            parametersStr = parametersStr.split(",");
            // console.log(parametersStr);
            for(var i = 0; i < parametersStr.length; i++) {
                // 如果數(shù)據(jù)中帶括號將使用其他邏輯
                tempStr = parametersStr[i].substring(0, parametersStr[i].indexOf("("));
                // 獲取括號中內(nèi)容
                typeStr = parametersStr[i].substring(parametersStr[i].indexOf("(")+1,parametersStr[i].indexOf(")"));
                // 如果為字符類型
                if (typeStr == "String" || typeStr == "Timestamp") {
                    statementStr = statementStr.replace("?", "'"+tempStr.trim()+"'");
                }else{
                    // 數(shù)值類型
                    statementStr = statementStr.replace("?", tempStr.trim());
                }
            }
            // console.log(statementStr);
            if(statementStr != null && statementStr != "") {
                return statementStr;
            }
            return null;
        }
    </script>
 </head>
 <body>
    <div>
        <label>
            <input type="checkbox" id="flag" />
            繼續(xù)疊加
        </label>
    </div>
    <div>
        <textarea   name="getStr" id="1" oninput="multiTransefer(document.getElementById('1').value)" rows="40" style="width: 49%" ></textarea>
        <textarea   name="getStr" id="d1" rows="40" style="width: 49%" ></textarea>
    </div>
 </body>
 </html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阿趁,一起剝皮案震驚了整個濱河市信殊,隨后出現(xiàn)的幾起案子责掏,更是在濱河造成了極大的恐慌赔蒲,老刑警劉巖忧额,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厘肮,死亡現(xiàn)場離奇詭異,居然都是意外死亡睦番,警方通過查閱死者的電腦和手機(jī)类茂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來托嚣,“玉大人巩检,你說我怎么就攤上這事∈酒簦” “怎么了兢哭?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長夫嗓。 經(jīng)常有香客問我迟螺,道長,這世上最難降的妖魔是什么舍咖? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任矩父,我火速辦了婚禮,結(jié)果婚禮上排霉,老公的妹妹穿的比我還像新娘窍株。我一直安慰自己,他們只是感情好攻柠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布球订。 她就那樣靜靜地躺著,像睡著了一般瑰钮。 火紅的嫁衣襯著肌膚如雪冒滩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天浪谴,我揣著相機(jī)與錄音旦部,去河邊找鬼祈搜。 笑死,一個胖子當(dāng)著我的面吹牛士八,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播梁呈,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼婚度,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了官卡?” 一聲冷哼從身側(cè)響起蝗茁,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎寻咒,沒想到半個月后哮翘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡毛秘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年饭寺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叫挟。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡艰匙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抹恳,到底是詐尸還是另有隱情员凝,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布奋献,位于F島的核電站健霹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瓶蚂。R本人自食惡果不足惜糖埋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望扬跋。 院中可真熱鬧阶捆,春花似錦、人聲如沸钦听。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朴上。三九已至垒棋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間痪宰,已是汗流浹背叼架。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工畔裕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人乖订。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓扮饶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親乍构。 傳聞我的和親對象是個殘疾皇子甜无,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容