`
xiao_yi
  • 浏览: 411243 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA编码规范中关于sql语句规范要求

阅读更多
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"
           
+ "      ?"                                     &nb
分享到:
评论

相关推荐

    java操作mysql数据库,不写sql语句版

    在Java编程中,与MySQL数据库交互通常涉及到使用SQL语句来执行CRUD(创建、读取、更新、删除)操作。然而,为了提高代码的可维护性和安全性,开发者可以选择使用ORM(对象关系映射)框架,如Hibernate或MyBatis,...

    JAVA安全编码规范参考.pdf

    JAVA安全编码规范参考文档深入分析了在Java开发中如何编写安全的代码,降低系统被攻击的风险。文档内容涵盖了安全编码的基本原则以及常见漏洞的安全编码方法。 一、安全编码基本原则 1. 所有输入数据都是有害的 在...

    java 编码规范文档

    ### Java编码规范文档知识点 #### 1. 概述 - **内容**:本文档主要涵盖了Java编程语言的编码规范,包括命名规则、注释规范、排版规范以及数据库相关的命名与格式化等内容。 - **编写目的**:制定一套统一的编码规范...

    阿里JAVA编码规范

    ### 阿里Java编码规范知识点详解 #### 一、编程规约 ##### (一) 命名规约 1. **禁止特殊字符作为命名起始或结尾**: - **规约**:所有代码中的命名均不得以下划线`_`、美元符号`$`开始或结束。 - **反例**:`_...

    java 编码规范 javaAPI

    本篇文章将深入探讨Java编码规范以及如何有效地使用Java API。 一、Java编码规范 1. 命名规则: - 类名:采用驼峰式命名,每个单词首字母大写,如`MyClassName`。 - 变量名和方法名:也采用驼峰式命名,但第一个...

    java后台编码规范

    Java后台编码规范是软件开发中一项重要的指导原则,它旨在提高代码质量、可读性、可维护性和团队协作效率。本规范主要适用于Java后端开发者,涵盖了命名规则、注释、异常处理、类与对象设计、接口设计、数据访问、...

    阿里巴巴Java编码规范

    《阿里巴巴Java编码规范》是Java开发者们遵循的一套专业指南,旨在提高代码质量,提升团队协作效率,并确保软件系统的稳定性和可维护性。这套规范涵盖了多个方面,包括但不限于编码规范、异常处理、日志记录、单元...

    java软件开发编码规范

    【Java软件开发编码规范】 编码规范对于任何编程语言来说都是至关重要的,尤其是Java,它是一种广泛应用的编程语言,良好的编码规范能确保代码的可读性、可维护性和团队协作效率。交通事业部的Java软件开发编码规范...

    Java和C华为编码规范

    8. **安全性**:编码规范强调了安全编码的重要性,包括输入验证、避免SQL注入、防止缓冲区溢出等。对于Java,还要注意防范XSS攻击和CSRF攻击。 9. **版本控制**:华为编码规范还涵盖了版本控制的使用,如Git,要求...

    java编码规范

    以上内容仅为Java编码规范的一小部分,实际开发中还涉及到异常处理、日志记录、单元测试等多个方面。遵循编码规范可以提高代码质量,降低维护成本,提升团队协作效率。在实践中不断学习和完善,才能成为一名优秀的...

    软件开发编码规范(JAVA、SQL)归纳.pdf

    《软件开发编码规范(JAVA、SQL)归纳》 在软件开发过程中,编码规范扮演着至关重要的角色,它有助于提高代码的可读性、可维护性和团队协作效率。本规范主要针对JAVA和SQL两种语言,旨在为开发者提供一套统一的、有效...

    研发中心-java编码规范.docx

    Java 编码规范是开发高质量软件的基础,它涵盖了命名...以上内容仅为《研发中心-java编码规范》文档的概述,具体细节和实践建议应参考完整文档以获取更详尽的信息。遵循这些规约,可以显著提高代码质量和团队协作效率。

    Java编码规范.pdf

    《Java编码规范》是指导Java开发者编写高效、可靠和易维护代码的重要文档。这份规范旨在提升软件工程的安全性,同时增强代码的可读性和团队协作效率。以下是对规范中的主要知识点的详细阐述: 1. **代码组织与风格*...

    sql语句格式化工具

    1. **代码对齐**:将SQL语句中的关键字、列名、表名和操作符对齐,使整体结构更清晰。 2. **缩进和换行**:自动插入适当的空格和换行,使嵌套的查询和子查询更容易辨识。 3. **注释处理**:保持或重新格式化注释,使...

    阿里最新Java编程规范.pdf

    在MySQL数据库部分,手册提供了建表、索引、SQL语句和ORM映射的规范。比如,在建表规约中,详细列出了字段命名、数据类型选择和默认值设置的建议,以优化数据库性能和可维护性。索引规约中,则指出了合理的索引设计...

    java2实用教程,java编码规范及书中配套程序代码

    总之,"Java2实用教程,java编码规范及书中配套程序代码"这个资源为Java初学者和进阶者提供了一个全面的学习平台,不仅可以学习到扎实的编程基础,还能了解到实践中的最佳编码习惯。通过深入研究和实践这些代码,你...

    Java编码规范【简易版】.pdf

    Java编码规范是软件开发中的重要组成部分,它有助于提高代码的可读性、可维护性和团队协作效率。本简易版的编码规范主要涵盖了工程结构、命名规范、注释模板、代码规范和SQL规范等方面,旨在为程序员提供一个实用且...

    java常用语句大全java编码规范模拟测验答案

    ### Java常用语句大全及Java编码规范模拟测验解析 #### 集合类的使用规范 1. **集合类的命名原则** - 正确做法:含有集合意义的属性命名,尽量包含其复数的意义。例如,存储员工信息的列表可以命名为`employees`...

    阿里巴巴编码规范(Java)满分答卷(内含50题).docx

    阿里巴巴 Java 编码规范知识点总结 阿里巴巴编码规范是 Java 开发手册的重要组成部分,涵盖了 Java 编码的各个方面,包括单元测试、并发处理、代码优化、数据库操作、接口设计等。以下是阿里巴巴 Java 编码规范的...

    阿里巴巴编码规范(Java)满分答卷.docx

    阿里巴巴编码规范(Java)满分答卷是对Java开发手册的总结,涵盖了Java开发中的多个方面,包括单元测试、并发处理、分页查询、水平权限控制、数据库中NULL的处理、接口使用抛异常还是返回错误码、类的序列化、Java的...

Global site tag (gtag.js) - Google Analytics