JAVA編碼規范中關于sql語句規范要求
1、關鍵字單獨占一行。(SELECT?、UPDATE、DELETE?FROM、INSERT?INTO、VALUES、SET、FROM、WHERE、GROUP?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?NULL、IS?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★ 閱讀(768)
評論(0) 編輯 收藏