java中sql語句快速處理


在java開發中,有時候經常需要寫很長的sql,需要用雙引號括起來,然后換行啥的。雖然手動可以自己寫,但經常浪費時間,而且容易寫錯。自己寫了個小工具,自動處理。先看效果吧

比如這么一長串sql:

 SELECT *, isnull(y.sl,0)-isnull(x.ycsl,0) maxsl from
 (select
 c.cpcode_name,c.cpcode_ename,c.cpcode_kcode,c.cpcode_item01,c.cpcode_item02,c.cpcode_item03,c.cpcode_item04, 
 c.cpcode_item05,c.cpcode_item06,c.cpcode_item07,c.cpcode_item08 ,c.cpcode_sunit,c.custom_01,p.sc_gch,p.sc_code, 
 p.cus_str_define1,p.cus_str_define2,p.cus_str_define3,p.cus_str_define4,p.cus_str_define5,p.cus_str_define6 ,p.cus_str_define7,p.cus_str_define8,p.cus_str_define9,p.cus_str_define10 
 ,p.xsdd_mo,p.zjpch,isnull((select sum(sc_sl) ycsl from SA_WL_SCGC where sc_gch like 'BZ%' ),0) ycsl 
from SA_WL_SCGC p,BA_JS_CPCODE c where p.sc_code=c.cpcode_code
and p.sc_gch = 'HB1809200001') x 
 left JOIN
 (select a.rq,a.flag,a.note,a.cptype,a.cptype cptype1,a.customer,a.bz,a.shl,b.price,b.je,isnull(b.cus_num_define1,0)cus_num_define1,isnull(b.sl,0) sl,isnull(b.js,0) js,isnull(b.zl,0) zl,
 isnull(b.msl,0) msl,b.hxflag,a.man,a.qrman,a.qrrq,b.hxman,b.hxrq ,b.code,b.jhrq,b.mo,a.corp_id,b.mxid 
from BA_XS_XSDD a,BA_XS_XSDDMX b where a.note=b.note and b.mo =
 (SELECT xsdd_mo from SA_WL_SCGC p where p.sc_gch = 'HB1809200001' )) y 
 on x.xsdd_mo=y.mo 

看着都讓人頭疼,用小工具處理后的結果:

" SELECT *, isnull(y.sl,0)-isnull(x.ycsl,0) maxsl from "
+"  (select "
+"  c.cpcode_name,c.cpcode_ename,c.cpcode_kcode,c.cpcode_item01,c.cpcode_item02,c.cpcode_item03,c.cpcode_item04,  "
+"  c.cpcode_item05,c.cpcode_item06,c.cpcode_item07,c.cpcode_item08 ,c.cpcode_sunit,c.custom_01,p.sc_gch,p.sc_code,  "
+"  p.cus_str_define1,p.cus_str_define2,p.cus_str_define3,p.cus_str_define4,p.cus_str_define5,p.cus_str_define6 ,p.cus_str_define7,p.cus_str_define8,p.cus_str_define9,p.cus_str_define10  "
+"  ,p.xsdd_mo,p.zjpch,isnull((select sum(sc_sl) ycsl from SA_WL_SCGC where sc_gch like 'BZ%' ),0) ycsl  "
+" from SA_WL_SCGC p,BA_JS_CPCODE c where p.sc_code=c.cpcode_code "
+" and p.sc_gch = 'HB1809200001') x  "
+"  left JOIN "
+"  (select a.rq,a.flag,a.note,a.cptype,a.cptype cptype1,a.customer,a.bz,a.shl,b.price,b.je,isnull(b.cus_num_define1,0)cus_num_define1,isnull(b.sl,0) sl,isnull(b.js,0) js,isnull(b.zl,0) zl, "
+"  isnull(b.msl,0) msl,b.hxflag,a.man,a.qrman,a.qrrq,b.hxman,b.hxrq ,b.code,b.jhrq,b.mo,a.corp_id,b.mxid  "
+" from BA_XS_XSDD a,BA_XS_XSDDMX b where a.note=b.note and b.mo = "
+"  (SELECT xsdd_mo from SA_WL_SCGC p where p.sc_gch = 'HB1809200001' )) y  "
+"  on x.xsdd_mo=y.mo "

自動給加上雙引號及換行加號,只需自己手動把相關的參數替換一下即可,是不是很方便啊。

下面是小工具的演示圖:

   原理很簡單,用正則表達式進行處理。不僅可以將sql轉為相應的java代碼,還可以將相應的java代碼轉為sql代碼(這個功能有時候不太好用,不過稍微手動調一下就可以了,相對手動已經方便很多了)。

 功能很簡單,我將它做成了html頁面。下面是小工具的地址:

https://files.cnblogs.com/files/iceriver315/sqlconvert.zip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM