隨筆 - 71  文章 - 15  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          因為口渴,上帝創造了水;
          因為黑暗,上帝創造了火;
          因為我需要朋友,所以上帝讓你來到我身邊
          Click for Shaanxi xi'an, Shaanxi Forecast
          ╱◥█◣
            |田|田|
          ╬╬╬╬╬╬╬╬╬╬╬
          If only I have such a house!
          〖總在爬山 所以艱辛〗
          Email:myesjoy@yahoo.com.cn
          NickName:yesjoy
          MSN:myesjoy@hotmail.com
          QQ:150230516

          〖總在尋夢 所以苦痛〗

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          Hibernate在線

          Java友情

          Java認證

          linux經典

          OA系統

          Spring在線

          Structs在線

          專家專欄

          企業信息化

          大型設備共享系統

          工作流

          工作流產品

          網上購書

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          JAVA編碼規范中關于sql語句規范要求

          1、關鍵字單獨占一行。(SELECT?、UPDATEDELETE?FROMINSERT?INTOVALUESSETFROMWHEREGROUP?BY?、ORDER?BY?、JOIN)
          2、每行顯式加回車換行符'\r\n'
          3、每個查詢字段、條件字段、分組字段、排序字段單獨占一行
          4、多表連接查詢字段、表名都要加別名,且一條語句只要一種連接方式。
          5、續行的開始位置為第7個字符,具體縮進格式參見范本sample_sql.txt
          6、變量用綁定變量或占位符!
          7、為使代碼清晰,“+?'\r\n'”右對齊。

          ---------------------------------------------------------------------------------------------------

          注意縮進格式說明:
          select?的第一個字段前面空一個“select”的長度,即空6個空格,下面的所有字段、表名的開始位置上下保持對齊。
          也就是說,
          select的字段、
          from?的表名、
          where?的條件字段、
          group?by?的分組字段、
          order?by?的排序字段
          的開始位置都是從第7個字符開始的。
          delete?from?、insert?into?、update語句的字段的開始位置,與此相同。
          ","前空4個空格,"
          and"前空2個空格。
          left?join??on?在同一行,每個連接字段單獨占一行。



          -----------------------------------------------------------------------------------------------------
          建議:
          1、續行的“"”與上面的對齊,例如:
          String?sql?
          =?"?insert?into?"?+?"\r\n"
          ???????????
          +?"???????ACC_BUDYEARINIT?"?+?"\r\n"

          2、在insert?語句的values子句、其他sql的where子句中,建議用綁定變量,即用"?"?或?:var_name
          不要用?
          +?var_name?寫成常數。

          3、與NULL判斷時,用IS?NULLIS?NOT?NULL

          4、同一條語句中只用一種連接語法,用join或者用from?a,b,c?where?a.xx=b.xx?and?a.xx=c.xx?,不要混合使用。

          --------------------------------------------------------------------------------------------------------

          sql代碼規范樣式:
          例一:

          String?sql?
          =?"select"???????????????????????+?"\r\n"
          ???????????
          +?"??????a"??????????????????????+?"\r\n"????????????????????????????????????????????????????????????????
          ???????????
          +?"????,?b"??????????????????????+?"\r\n"
          ???????????
          +?"????,?c"??????????????????????+?"\r\n"
          ???????????
          +?"from"?????????????????????????+?"\r\n"?
          ???????????
          +?"??????tab1"???????????????????+?"\r\n"
          ???????????
          +?"where"????????????????????????+?"\r\n"
          ???????????
          +?"??????a=?"????????????????????+?"\r\n"
          ???????????
          +?"??and?b=?"????????????????????+?"\r\n"
          ???????????
          +?"order?by"?????????????????????+?"\r\n"
          ???????????
          +?"??????c"??????????????????????+?"\r\n"
          ???????????
          +?"????,?d"??????????????????????+?"\r\n"




          例二:
          String?sql?
          =?"select"?+?"\r\n"
          ???????????
          +?"??????t1.field1?a"????????????+?"\r\n"??????????????????????????????????????????????????????????????????
          ???????????
          +?"????,?t1.field2?b"????????????+?"\r\n"
          ???????????
          +?"????,?t2.field3?c"????????????+?"\r\n"
          ???????????
          +?"from"?????????????????????????+?"\r\n"?
          ???????????
          +?"??????tab1?t1"????????????????+?"\r\n"
          ???????????
          +?"????,?tab2?t2"????????????????+?"\r\n"
          ???????????
          +?"where"????????????????????????+?"\r\n"
          ???????????
          +?"??????t1.field1=t2.field2"????+?"\r\n"
          ???????????
          +?"??and?t1.field1=?"????????????+?"\r\n"
          ???????????
          +?"??and?t1.field2=?"????????????+?"\r\n"
          ???????????
          +?"order?by"?????????????????????+?"\r\n"
          ???????????
          +?"??????t1.field2"??????????????+?"\r\n"
          ???????????
          +?"????,?t2.field3"??????????????+?"\r\n"

          String?sql?
          =?"select"???????????????????????+?"\r\n"
          ???????????
          +?"??????t1.field1?a"????????????+?"\r\n"?????????????????????????????????????????????????????????????????
          ???????????
          +?"????,?t1.field2?b"????????????+?"\r\n"
          ???????????
          +?"????,?t2.field3?c"????????????+?"\r\n"
          ???????????
          +?"from"?????????????????????????+?"\r\n"?
          ???????????
          +?"??????tab1?t1"????????????????+?"\r\n"
          ???????????
          +?"?join?tab2?t2?on"?????????????+?"\r\n"
          ???????????
          +?"??????t1.field1=t2.field2"????+?"\r\n"
          ???????????
          +?"where"????????????????????????+?"\r\n"??????
          ???????????
          +?"??????t1.field1=?"????????????+?"\r\n"
          ???????????
          +?"??and?t1.field2=?"????????????+?"\r\n"
          ???????????
          +?"order?by"?????????????????????+?"\r\n"
          ???????????
          +?"??????t1.field2"??????????????+?"\r\n"
          ???????????
          +?"????,?t2.field3"??????????????+?"\r\n"




          嵌套表樣式:
          注意層次。

          String?sql?
          =?"select"???????????????????????????????????????????+?"\r\n"
          ???????????
          +?"??????a.BUDITEM_ID?as?BUDITEM_ID"?????????????????+?"\r\n"
          ???????????
          +?"????,?a.BUDITEM_CODE?as?BUDITEM_CODE"?????????????+?"\r\n"?
          ???????????
          +?"????,?d.ACCTITLE_DIRECT?as?ACCTITLE_DIRECT"???????+?"\r\n"
          ???????????
          +?"????,?d.LEAFNODEFLAG?as?LEAFNODEFLAG"?????????????+?"\r\n"
          ???????????
          +?"from"?????????????????????????????????????????????+?"\r\n"????????????????????
          ???????????
          +?"??????BUD_BUDITEM?as?a"???????????????????????????+?"\r\n"????????????????
          ???????????
          +?"left?join?"???????????????????????????????????????+?"\r\n"
          ???????????
          +?"????(?select??????????????????????????????????????+?"\r\n"
          ???????????
          +?"????????????c.ACCSET_ID"??????????????????????????+?"\r\n"
          ???????????
          +?"????????????,?c.DATASETVER_ID"??????????????????????+?"\r\n"
          ???????????
          +?"????????????,?b.BUDITEM_ID"?????????????????????????+?"\r\n"
          ???????????
          +?"????????????,?b.INITDEBBALAMT"??????????????????????+?"\r\n"
          ???????????
          +?"????????????,?b.INITCRDBALAMT"??????????????????????+?"\r\n"
          ???????????
          +?"????????????,?c.ACCTITLE_CODE"??????????????????????+?"\r\n"????????
          ???????????
          +?"????????from"?????????????????????????????????????+?"\r\n"
          ???????????
          +?"??????????????ACC_BUDYEARINIT?as?b"?????????????????+?"\r\n"
          ???????????
          +?"????????????,?ACC_ACCTITLE??as??c"??????????????????+?"\r\n"
          ???????????
          +?"???????where"?????????????????????????????????????+?"\r\n"?
          ???????????
          +?"??????????????c.ACCSET_ID?=?b.ACCSET_ID"????????????+?"\r\n"??
          ???????????
          +?"??????????and?c.DATASETVER_ID?=?b.DATASETVER_ID"????+?"\r\n"??
          ???????????
          +?"??????????and?c.ACCTITLE_ID?=?b.ACCTITLE_ID"????????+?"\r\n"?
          ???????????
          +?"??????????and?b.ACCSET_ID?=??"??????????????????????+?"\r\n"??
          ???????????
          +?"??????????and?b.DATASETVER_ID?=??"??????????????????+?"\r\n"
          ???????????
          +?"????)??"??????????????????????????????????????????+?"\r\n"
          ???????????
          +?"??????as?d?on?"???????????????????????????????????+?"\r\n"
          ???????????
          +?"????(?"???????????????????????????????????????????+?"\r\n"
          ???????????
          +?"??????a.ACCSET_ID?=?d.?ACCSET_ID"?????????????????+?"\r\n"?
          ???????????
          +?"??and?a.DATASETVER_ID?=?d.DATASETVER_ID"??????????+?"\r\n"?
          ???????????
          +?"??and?a.BUDITEM_ID?=?d.BUDITEM_ID"????????????????+?"\r\n"
          ???????????
          +?"????)?"???????????????????????????????????????????+?"\r\n"
          ???????????
          +?"where"????????????????????????????????????????????+?"\r\n"?????????????????????
          ???????????
          +?"??????a.ACCSET_ID?=??"????????????????????????????+?"\r\n"
          ???????????
          +?"??and?a.DATASETVER_ID?=??"????????????????????????+?"\r\n"
          ???????????
          +?"order?by"?????????????????????????????????????????+?"\r\n"
          ???????????
          +?"??????a.BUDITEM_ID"???????????????????????????????+?"\r\n"

          ????????

          例三:
          String?sql?
          =?"insert?into"??????????????????????????????????????+?"\r\n"
          ???????????
          +?"??????tab1("??????????????????????????????????????+?"\r\n"
          ???????????
          +?"??????a"??????????????????????????????????????????+?"\r\n"
          ???????????
          +?"????,?b"??????????????????????????????????????????+?"\r\n"
          ???????????
          +?"????,?c"??????????????????????????????????????????+?"\r\n"
          ???????????
          +?"????,?d"??????????????????????????????????????????+?"\r\n"
          ???????????
          +?")"????????????????????????????????????????????????+?"\r\n"
          ???????????
          +?"values("??????????????????????????????????????????+?"\r\n"
          ???????????
          +?"???????"??????????????????????????????????????????+?"\r\n"
          ???????????
          +?"????,??"??????????????????????????????????????????+?"\r\n"
          ???????????
          +?"????,??"??????????????????????????????????????????+?"\r\n"
          ???????????
          +?"????,??"??????????????????????????????????????????+?"\r\n"
          ???????????
          +?")"????????????????????????????????????????????????+?"\r\n"




          例四:
          String?sql?
          =?"update"???????????????????????????????????????????+?"\r\n"?
          ???????????
          +?"??????tab1"???????????????????????????????????????+?"\r\n"
          ???????????
          +?"set"??????????????????????????????????????????????+?"\r\n"?
          ???????????
          +?"??????a=?"????????????????????????????????????????+?"\r\n"
          ???????????
          +?"????,?b=?"????????????????????????????????????????+?"\r\n"
          ???????????
          +?"????,?c=?"????????????????????????????????????????+?"\r\n"
          ???????????
          +?"where"????????????????????????????????????????????+?"\r\n"??
          ???????????
          +?"??????a=?"????????????????????????????????????????+?"\r\n"
          ???????????
          +?"??and?b=?"????????????????????????????????????????+?"\r\n"




          例五:
          String?sql?
          =?"delete?from"??????????????????????????????????????+?"\r\n"??
          ???????????
          +?"??????tab1"???????????????????????????????????????+?"\r\n"?
          ???????????
          +?"where"????????????????????????????????????????????+?"\r\n"?
          ???????????
          +?"??????a=?"????????????????????????????????????????+?"\r\n"?
          ???????????
          +?"??and?b=?"????????????????????????????????????????+?"\r\n"?



          posted on 2007-01-05 19:44 ★yesjoy★ 閱讀(770) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 绥芬河市| 浠水县| 麻阳| 泰和县| 保康县| 云梦县| 牙克石市| 安塞县| 宁武县| 阳谷县| 福州市| 南汇区| 九台市| 安溪县| 林口县| 吉首市| 建德市| 蒙城县| 乌拉特前旗| 上高县| 左权县| 江都市| 古交市| 蒲江县| 监利县| 松江区| 赤水市| 兰溪市| 林芝县| 佳木斯市| 梅州市| 宜兰市| 饶平县| 达孜县| 龙泉市| 祁东县| 南部县| 临洮县| 天镇县| 高淳县| 庆安县|