软件开发编码规范JAVASQL.docx

上传人:b****0 文档编号:17944858 上传时间:2023-08-05 格式:DOCX 页数:18 大小:46.66KB
下载 相关 举报
软件开发编码规范JAVASQL.docx_第1页
第1页 / 共18页
软件开发编码规范JAVASQL.docx_第2页
第2页 / 共18页
软件开发编码规范JAVASQL.docx_第3页
第3页 / 共18页
软件开发编码规范JAVASQL.docx_第4页
第4页 / 共18页
软件开发编码规范JAVASQL.docx_第5页
第5页 / 共18页
软件开发编码规范JAVASQL.docx_第6页
第6页 / 共18页
软件开发编码规范JAVASQL.docx_第7页
第7页 / 共18页
软件开发编码规范JAVASQL.docx_第8页
第8页 / 共18页
软件开发编码规范JAVASQL.docx_第9页
第9页 / 共18页
软件开发编码规范JAVASQL.docx_第10页
第10页 / 共18页
软件开发编码规范JAVASQL.docx_第11页
第11页 / 共18页
软件开发编码规范JAVASQL.docx_第12页
第12页 / 共18页
软件开发编码规范JAVASQL.docx_第13页
第13页 / 共18页
软件开发编码规范JAVASQL.docx_第14页
第14页 / 共18页
软件开发编码规范JAVASQL.docx_第15页
第15页 / 共18页
软件开发编码规范JAVASQL.docx_第16页
第16页 / 共18页
软件开发编码规范JAVASQL.docx_第17页
第17页 / 共18页
软件开发编码规范JAVASQL.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件开发编码规范JAVASQL.docx

《软件开发编码规范JAVASQL.docx》由会员分享,可在线阅读,更多相关《软件开发编码规范JAVASQL.docx(18页珍藏版)》请在冰点文库上搜索。

软件开发编码规范JAVASQL.docx

软件开发编码规范JAVASQL

系统开发规范

 

编制:

莫小明

 

版本历史

目录

1概述3

1.1.内容3

1.2.编写目的3

1.3.阅读对象3

2java编码命名规范4

2.1Package的命名4

2.2Class的命名4

2.3变量及方法命名4

2.4StaticFinal变量的命名4

2.5参数的命名5

2.6数组的定义及命名5

2.7方法的参数5

2.8内部循环变量的命名5

2.9JavaBean规范5

3java注释规范6

3.1单行注释6

3.2类注释6

3.3方法注释7

3.4变量注释8

4java编码排版规范8

4.1=间的空格8

4.2空行8

4.3换行9

4.4缩进9

4.5声明9

4.6括号10

5java编码格式约定10

6数据库编码命名规范12

6.1大小写说明12

6.2数据库表命名12

6.3视图命名12

6.4自定义函数命名12

6.5PL/SQL存储过程命名12

6.6JAVA存储过程命名12

6.7数据库包命名13

6.8自定义类型命名13

6.9字段名命名13

6.10字段别名13

7数据库SQL语句格式13

7.1大小写说明13

7.2INSERTINTO语句14

7.3UPDATE语句14

7.4SELECT语句14

8补充说明异常抛出15

8.1Service层异常的抛出15

8.2控制层异常的处理16

9方法修饰说明16

10调用过程说明17

1概述

1.1.内容

本规范说明书从大方面来说包括:

java编码规范、数据库表、字段等的命名、SQL语句排版,以及后面补充的一些说明。

1.2.编写目的

编码规范对于程序员而言尤为重要,有以下几个原因:

Ø一个软件的生命周期中,80%的花费在于维护。

Ø几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护。

Ø编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码,增加可读性,减少项目组中因为换人而带来的损失。

Ø如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品。

1.3.阅读对象

本规范说明书阅读对象可以是开发人员、设计人员、测试人员、审查代码人员。

2java编码命名规范

2.1Package的命名

Package的名字应该都是由一个小写单词组成。

例如:

packagecom.soa.service.bi.fi;

packagecom.soa.service.sox4;

2.2Class的命名

Class的名字必须由大写字母开头而其他字母都小写的单词组成,对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母,一般使用名词命名。

publicabstractclassAbstractSox4Service{

/*内容*/

}

2.3变量及方法命名

变量的名字必须用一个小写字母开头。

后面的单词用大写字母开头。

变量一般使用名词命名,方法名一般使用动词命名,并带有一定的意义,让人一读就懂;再者对于业界认可的单词或固有名词,可直接使用。

EG变量:

userName,方法名:

getUserInformation、addNews

2.4StaticFinal变量的命名

staticFinal变量的名字应该都大写,并且指出完整含义(给出出注释)。

//DBConfigPATH

publicstaticfinalStringDB_CONFIG_FILE_PATH="com.neu.etrain.dbconfig";

2.5参数的命名

参数的名字必须和变量的命名规范一致。

2.6数组的定义及命名

数组应该总是用下面的方式来命名:

byte[]buffer;而不是:

bytebuffer[];

2.7方法的参数

使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:

setCounter(intsize)

{

this.size=size;

}

2.8内部循环变量的命名

Ø请不要用i、j、n等没有意义的变量命名;

Ø不要怕麻烦,请使用带有意义的单词命名;

Ø如:

userListSize、rowLength等来命。

2.9JavaBean规范

Ø一个javaBean类必须是一个公共类,类都得设置为public;

Ø一个javaBean类必须有一个空的构造函数,必须有一个不带有参数的公用构造器。

此构造器也应该通过调用各个特性的设置方法来设置特性的缺省值;

Ø一个javaBean类不应有公共实例变量,类变量都为private,变量的命名上面已经说明清楚;

Ø持有值应该通过一组存取方法(getXxx和setXxx)来访问,对于需要的每个特性,应该有一个带有匹配公用getter和setter方法的专用实例变量。

3java注释规范

2

3

3.1单行注释

注释要简单明了。

//用户名

StringuserName=null;

3.2类注释

/**

*

*功能描述:

写上你的描述,至少能看懂本类是做什么的,有哪些功能

*

*@see

*与该类相关的类,写出具体的路径:

包括完整的包名和类名.java

*

*@author(作者)写上你的姓名

*

*@company(开发公司)重庆斯欧(SOA)信息技术有限公司

*

*@copyright(版权)本文件归属重庆斯欧(SOA)信息技术有限公司所有

*

*@since(该版本支持的JDK版本):

1.5

*

*@version(版本)

*

*@date(开发日期)写上编写日期

*

*@modify(修改)

*

第一次修改:

时间、修改人;修改内容简介

*

第二次修改:

时间、修改人;修改内容简介

*

第三次修改:

时间、修改人;修改内容简介

*

*@Review(审核人):

*

*/

 

3.3方法注释

/**

*方法描述

*@paramargsarrayofstringarguments

*@returnNoreturnvalue

*@exceptionexceptionsNoexceptionsthrown

*/

publicstaticvoidmain(String[]args)

{

System.out.println(“Helloworld!

”);

}

如上示例,必须有:

Ø方法功能的基本描述

Ø每个参数的说明

Ø异常的说明

Ø返回值的说明

3.4变量注释

对于普通变量的注释:

//用户姓名

Stringusername=“xyz”;

//用户姓名

Stringusername=“xyz”;

对于类变量的注释:

/**XXXXXX*/

Stringusername=“xyz”;

4java编码排版规范

4

4.1=间的空格

关键词和变量,变量和操作符之间加一个的空格

Optionsopt1=null;

4.2空行

空行将逻辑相关的代码段分隔开,以提高可读性。

下列情况应该总是使用两个空行:

Ø一个源文件的两个片段(section)之间

Ø类声明和接口声明之间

下列情况应该总是使用一个空行:

两个方法之间

Ø方法内的局部变量和方法的第一条语句之间

Ø块注释或单行注释之前

Ø一个方法内的两个逻辑段之间,用以提高可读性

4.3换行

当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:

Ø在一个逗号后面断开

Ø在一个操作符前面断开

Ø宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开

4.4缩进

对不同级别缩进一个TAB

4.5声明

推荐一行一个声明,因为这样以利于写注释。

亦即,

//indentationlevel

intlevel;

//sizeoftable

intsize;

要优于,

intlevel,size;

不要将不同类型变量的声明放在同一行,例如:

intfoo,fooarray[];//WRONG!

4.6括号

花括号的的开始和结束均独占一行,并上下对齐

5java编码格式约定

1.import语句导入详细的类名,而不是整个目录

Eg:

importmon.database.DataBase;

importmon.exception.DBException;

importcom.soa.service.bi.AbstractBIService;

2.每个类、成员变量、函数都必须加注释。

注释的格式遵照上面的“注释规范”

3.已经发布的代码中,不允许出现大块的功能性注释。

如果不需要该功能,请直接在代码中删除。

4.请在已经发布的代码中去掉用于调试的任何代码。

5.请在已经发布的代码去除所有未使用变量和函数。

6.每一个成员变量、方法体内变量和成员函数都必须指定其作用域。

关于作用域,在一些不太重视代码质量的人的代码里会发现,一切的变量均在类里的开头一次性定义完,或者更是极为不负责任的创建一大堆的对象,谈到对象的创建,在这里说明一下java的运行机制,举例:

PublicclassA{}

PublicclassBextendsA{

B(){

Aa=NewA();

}

}

PublicclassCextendsB{

C(){

Aa=NewA();

Bb=newB();

}

}

这是一段很小的代码,C继承B,B又继承A(事实上A还继承了Object)。

当调用C的时候,在C的构造函数里初始化了A和B,然后程序马上又跑到B里执行,当在B里的时候又发现B的构造函数里初始了A,然后又要执行A的动作,A现在没任何动作,假设A的构造函数里又有一段比较复杂的代码,那么这个程序将花费大量时间在执行。

而在C里,我们也没有执行具体的任务,仅仅是进入到C的状态就做了那么多的事情。

所以,在一般情况下,我们都不建议一次性做数据的初始化(除非系统非常强烈的要求),我们建议以实际情况进行分析,合理的安排作用域是有好处的。

这样可以很好的维护,也可以提高不少的性能问题,同时也可以排除过多的定义而导致混杂不清的错误。

同样,在方法体内,依然存在局部多用域问题,平时要小心、认真为妙。

7.为避免虚拟机差异,在声明类的成员变量时,如果不指定其值,应该让其置空;

Eg:

privateDatastorecodeDs=null;

8.通常情况下。

应该使用log4j来输出信息、而不是直接使用System.out;

9.在构造SQL时,短小的sql语句尽量使用“+”,而长度较大的SQL使用StringBuffer的append方法;

10.方法内需要打印信息,请直接使用log.info(……)方法输出;

11.方法内打印多个测试数据(如:

list、map等对象数据)可使用Sys.print或Sys.println方法,不提倡使用sysout.out.print;

6数据库编码命名规范

5

6

6.1大小写说明

有关数据库的命名都是用大写。

6.2数据库表命名

任何表必须以:

SOA_开头,结尾为:

_T

例如:

SOA_BI_FIXED_ASSET_T(固定资产规模趋势表)

6.3视图命名

SOA_开头,结尾为:

_V

例如:

SOA_BI_USER_V(固定资产规模趋势视图)

6.4自定义函数命名

SOA_开头,结尾为:

_F

例如:

SOA_BI_USER_INFO_F

6.5PL/SQL存储过程命名

SOA_开头,结尾为:

_P

例如:

SOA_BI_USER_INFO_P

6.6JAVA存储过程命名

SOA_开头,结尾为:

_J

例如:

SOA_BI_USER_J

6.7数据库包命名

SOA_开头,结尾为:

_PKG

注:

在ORACLE中合理的利用包可以更易于维护、使得整体结构更加清晰、执行效率更高。

6.8自定义类型命名

以SOA_开头,以_CT(代表自定义类型)结尾

示例:

SOA_BI_USER_ADMIN_CT

SOA_BI_USER_COMMON_CT

6.9字段名命名

Ø以英文名命名

Ø对于多个单词组合的情况,以“_”分隔

Ø单词长度大的使用标准简称

Ø字段名应该在15字母以内

Ø字段不使用别名

示例:

USER_NAME(用户名)

   USER_PWD(用户密码)

6.10字段别名

7数据库SQL语句格式

7

7.1大小写说明

SQL语句必须全部用大写字母编写。

7.2INSERTINTO语句

INSERTINTO表名(字段1,字段2,字段3)

VALUES(值1,值2,值3)

注意要求:

Ø第一行为:

INSERTINTO表(表字段)

Ø第二行为:

VALUES(字段所对应的值)

Ø“,”后请打一个空格

7.3UPDATE语句

UPDATE表名

SET字段1=值1,字段2=值2,字段3=值3

WHERE

条件1

AND(OR)条件2

AND(OR)条件3

注意要求:

Ø第一行:

UPDATE表名

ØSET设置字段值(注:

如果太长,请换行)

Ø“=”两头请都打空格

Ø“,”后请打一个空格

Ø若带条件,单独一行写WHERE

Ø空四个空格符,写上第一个条件

Ø若带多个条件,换行,敲两个空格,写AND条件N

Ø一行只写一个AND条件

7.4SELECT语句

SELECT

字段1,

字段2,

字段3

FROM表1,表2,表3

WHERE

条件1

AND(OR)条件2

AND(OR)条件3

ORDERBY排列字段

GROUPBY分组字段HAVING过滤条件

UNION[ALL]

SELECT……

或者(SQL标准的关联查询写法):

SELECT

字段1,

字段2

字段3

FROM表1

INNER(LEFT、RIGHT、FULL)JOIN表1ON条件

INNER(LEFT、RIGHT、FULL)JOIN表2ON条件

CROSSJION表3(注:

交叉查询是不带ON条件的)

WHERE条件1

AND(OR)条件2

AND(OR)条件3

ORDERBY排列字段

GROUPBY分组字段HAVING过滤条件

UNION[ALL]

SELECT……

注意要求:

请注意以上的两种格式,该换行的请换行、该空格的请空格!

建议采用第二种格式写法(相关的链接查询请正确的理解)

知识提醒:

INNERJOIN表ON条件

同等于oracle中的T1.A=T2.A

LEFTJOIN表1ON条件

同等于oracle中的T1.A=T2.A(+)

RIGHTJOIN表1ON条件

同等于oracle中的(+)T1.A=T2.A

8补充说明异常抛出

8

8.1Service层异常的抛出

Ø公开外部访问的方法(public)

必须:

throwsDBException,ServiceException

方法体必须为如下格式的try{……}catch

try{

//当人为抛出异常时:

thrownewServiceException("自定义抛出异常信息定义!

");

}catch(Exceptione){

thrownewServiceException("serviceerr:

"+e.getMessage());

}

Ø不公开访问的方法(private)

只有在本类被使用,必须设置为private,此时异常抛出:

1、如果跟数据库相关的,则:

必须:

throwsDBException,Exception方法体不需要再try{……}catch。

2、如果跟数据库无关的操作,则:

必须:

throwsException方法体不需要再try{……}catch。

Ø单个数据库操作的方法

查询、新增、编辑、删除的单个操作,一律调用

DataBase.方法(sqlQuery)。

Ø含多个数据库操作的方法

包括(查询、新增、编辑、删除的混合操作)的方法内,一律调用

DataBase.方法(sqlQuery,connection)带connection的方法,并且方法结束后一定关闭数据库连接:

finally{

DataBase.closeConnection(connection);

}

ØService层的方法调用数据库入口说明

调用数据库入口一律以DataBase.方法,不能直接使用这样访问:

AbstractDatabase.方法。

8.2控制层异常的处理

捕获:

DBException,ServiceException,或EJBException

9方法修饰说明

Ø公开外部访问的方法——public

Ø不公开访问的方法——private

ØService层内的方法一律不允许适用static来修饰

原因:

1、static修饰的方法实际上是全局方法,只要是public,在任何地方均能被访问,并且程序一被访问,在内存中已经存在。

2、一般重用性极强方法才使用static修饰,如我们的DataBase类,逻辑性强、调用穿插复杂的方法不需要用static修饰,因为不够灵活。

3、被static修饰的方法和非static修饰的方法的生命周期不一样。

10调用过程说明

Factory(UI层)如果要调用底层的java逻辑方法,一律调用control控制层。

不允许跨越control控制层直接调用service业务层,同样是因为后期的维护我们才这么决定。

我们总体访问过程大致都是这样的:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2