隨筆 - 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★ 閱讀(771) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 崇义县| 理塘县| 棋牌| 伊吾县| 启东市| 普兰店市| 依安县| 黄平县| 庆元县| 贡山| 封开县| 腾冲县| 镇原县| 海宁市| 应城市| 宣恩县| 玉溪市| 罗江县| 汤原县| 建阳市| 邢台县| 辰溪县| 曲阜市| 淮北市| 岳普湖县| 永宁县| 临洮县| 金寨县| 布尔津县| 中牟县| 乌审旗| 威远县| 托克逊县| 博爱县| 靖远县| 高平市| 龙泉市| 分宜县| 广丰县| 陆河县| 高州市|