2022年JDeveloper代码开发规范 .pdf

上传人:Che****ry 文档编号:34262869 上传时间:2022-08-15 格式:PDF 页数:14 大小:108.57KB
返回 下载 相关 举报
2022年JDeveloper代码开发规范 .pdf_第1页
第1页 / 共14页
2022年JDeveloper代码开发规范 .pdf_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《2022年JDeveloper代码开发规范 .pdf》由会员分享,可在线阅读,更多相关《2022年JDeveloper代码开发规范 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、程序代码开发规范为了适应公司面向组件开发要求, 为了更好的规范程序培养良好的代码书写习惯,增加代码的可读性便于后期的维护,把程序开发规范做调整。1、程序调用关系程序类及页面调用关系如下:模块见调用关系图在系统的需求及设计阶段就要考虑模块的划分,模块要求能够独立完成一个完整的业务尽量避免模块之间的调用(比如:公文中的收发文管理就是独立的模块,不要把收发文管理中的发文单独做一个模块就会存在模块之间调用)。公共模块为所有的模块提供服务单只允许业务模块调用公共模块。模块间不能互调的内容包括:前台显示页面、页面后台管理类、业务逻辑类。2、命名规范2.1 目录命名系统中 java 代码包目录结构:com.

2、xxxx.yyyy其中: xxxx是业务系统编码、yyyy是业务模块编码;com.xxxx.yyyy内部目录:view 目录:存放页面的后台管理model 目录:存放本模块的业务逻辑系统公共模块业务逻辑后台管理类实体页面模块 1:页面后台类逻辑层实体层模块 2:页面后台类逻辑层实体层模块 3:页面后台类逻辑层实体层模块 5:页面后台类逻辑层实体层模块 4:页面后台类逻辑层实体层名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - e

3、ntity 目录:存放本模块的实体类系统中 jsp 页面目录结构: public_htmlxxxxyyyyzzzz,其中 xxxx为业务系统编码、 yyyy 为业务模块编码、 zzzz为功能模块编码。2.2 文件命名java文件命名:实体类通过工具进行生成,尽量不要手工去改里面的文件;业务逻辑类: zzzzSession ,zzzz为业务功能简称;后台管理类: zzzzBean, zzzz 为业务功能简称, 后台管理类别名命名格式:BackBean(name= zzzzBean) 其中 zzzz为业务功能简介。jsp 文件命名:jsp 文件: xxxx_yyyy_zzzz_gggg.jsp ,

4、其中 xxxx 为业务系统编码、 yyyy 为业务模块编码、zzzz为功能模块编码、gggg页面类型:main(入口主页面 )、content(数据查询显示)、insert(插入页面 )、update(更新页面 )。2.3 类中方法命名类中的方法尽量用代表操作含义的英文字母开头命名(如:insertXxx()插入、updateXxxx() 更新、 deleteXxxx()删除等 )。所有的方面必须都要加注释。3、代码注释java 类注释要求类功能简单说明开发员姓名必须为中文代码创建日期类注释如下:/* 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -

5、 - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - * 新框架代码测试后台管理类* 张三* 2012-2-28 */ public class Test1View extends BaseBean java 类方法注释方法的功能说明方法参数说明方面返回值说明例如:/* * 插入多个实体对象* param listobj * return true 成功; false 失败* throws com.itlamp.dbsql.DbException */ public boolean InsertArrayObj(List

6、listobj) throws DbException 4、SQL语句规范1、尽量使用绑定变量。这是在客户端程序中出现最多的问题。不使用绑定变量,一方面将增加对每个语句的进行反复的PARSE ,占用了大量的 SGA 空间和浪费了 CPU的 PARSE 的时间,并导致 SGA 命中率不高; 另一方面容易如果是接收的外界参数,外界可以进行SQL注入,造成信息泄露和数据的错误更新。例:String t_orderno=”-XXX”; 原语句:Sql=“SELECT * FROM mtl_orderheaders WHERE orderno= “+t_orderno +”;名师资料总结 - - -精品

7、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - 改进后语句:“SELECT * FROM mtl_orderheaders WHERE orderno=?”;在 java 语言中通过 PreparedStatement 的 set 方法进行参数传值。2、尽量不要使用左值函数和左模糊查询。左值函数和左模糊查询将SQL语句用不上索引, ORACLE 将对引用的表采用ACCESS TABLE FULL ,这对于大表来说,所花时间可能无法忍受。例:原语句:SEL

8、ECT User_No FROM v_user_perview WHERE User_No=? AND ltrim (FUNCTION_NAME)=人员线体对应表 and Line_No=1 ;改进后语句:SELECT User_No FROM v_user_perview WHERE User_No=? AND FUNCTION_NAME=人员线体对应表 and Line_No=1 ;3、少用空值作为查询条件。因为空值将不能用上索引,尽量在缺省值,在插入数据时自动让ORACLE 填上缺省值。例:原语句:SELECT * FROM employee WHERE flag is null;改进后

9、语句:SELECT * FROM employee WHERE flag=0 (让数据库自动缺省为0)4、应尽量使用变量绑定实现SQL语句共享,避免使用硬编码。例:原语句:SELECT emp_name FROM emp WHERE emp_no = 123; SELECT emp_name FROM emp WHERE emp_no = 987; 改进后语句:SELECT emp_name FROM emp WHERE emp_no = ?; /Bind value: 123 SELECT emp_name FROM emp WHERE emp_no = ?; /Bind value: 98

10、7 5、在含有子查询的 SQL语句中,应减少对表的查询。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 例:原语句:UPDATE emp SET emp_cat = (SELECT MAX(category) FROM emp_categories),sal_range = (SELECT MAX(sal_range) FROM emp_categories) WHERE emp_dept = 0020; 改进后语句:UPDA

11、TE emp SET (emp_cat, sal_range) = (SELECT MAX(category), MAX(sal_range) FROM emp_categories) WHERE emp_dept = ?;5、类代码要求5.1 业务逻辑类业务逻辑类必须继承com.itlamp.dbsql.SessionSuper , 基于 SQL的查询、 录入、修改、删除尽量用基于 实体对象 和参数 sql 进行操作。业务逻辑类中的事务是通过异常进行处理, 在逻辑类方法中的异常必须通过“throw“模式抛出,方法中代码不能超过 200 行。业务逻辑类之间可以相互调用。业务逻辑类推荐使用的方法

12、:/* * 对象方式插入* param entobj 实体对象* return 成功 true;失败 false * throws DbException */ public boolean InsertObj(Object entobj) throws DbException; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - /* * 插入多个实体对象* param listobj 多个数据库对象数组* return * t

13、hrows DbException */ publicboolean InsertArrayObj(List listobj) throws DbException; /* * 把实体对象值更新数据库中* param entobj 实体对象* return true 成功; false 失败* throws DbException */ public boolean UpdateObj(Object entobj) throws DbException; /* * 更新多个实体对象值到数据库中* param listobj 多个实体对象数组* return true 成功; false 失败*

14、 throws DbException */ public boolean UpdateArrayObj(List listobj) throws DbException; /* * 删除实体对象* param entobj 要删除的实体* return true 成功; false 失败* throws DbException */ public boolean DeleteObj(Object entobj) throws DbException; /* 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -

15、- - - - - 第 6 页,共 14 页 - - - - - - - - - * 删除多个实体对象* param listobj 要删除实体对象数组* return true 成功; false 失败* throws com.itlamp.dbsql.DbException */ public boolean DeleteArrayObj(List listobj) throws DbException; /* * 通过主键查找对象* param cls 实体对象类* param keyObj 关键字对象* return 查询到的实体对象*/ public Object findByKey

16、(Class cls,Object keyObj)throws DbException; /* * 通过带参数的 sql 语句把查询结果的第一条记录值赋给对象* param basesql 基本 sql 语句, 如果要在 sql 语句中间增加where 条件就需要增加#where#做为替换符号* param wh 参数值 where 条件辅助管理对象* param tobj 插入的对象* return 赋值后的对象* throws DbException */ public Object sqlSingleQuery(String basesql,WhereHelper wh,Object t

17、obj) throws DbException; /* * 通过带参数 sql 语句获取查询结果* param basesql 基本 sql 语句, 如果要在 sql 语句中间增加where 条件就需要名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - 增加#where#做为替换符号* param wh wh 参数值 where 条件辅助管理对象* return Result 查到的结果集* throws DbException

18、*/ public Result sqlQuery(String basesql,WhereHelper wh) throws DbException; /* * 通过 sql 获取 List结果集, list 中的元素为实体对象* param basesql 基本 sql 语句,如果需要把条件放到中间,要在语句中添加:#where# * param wh where 条件辅助代理类* param fclass 实体对象类* return List 对象* throws DbException */ public List sqlQueryList(String basesql,WhereHe

19、lper wh,Class fclass) throws DbException; /* * 通过 sql 获取 List结果集, list 中的元素为 Map 对象* param basesql 基本 sql 语句,如果要在 sql 语句中间增加where 条件就需要增加 #where#做为替换符号* param wh where 条件辅助代理类* return List 对象* throws DbException */ public List sqlQueryList(String basesql,WhereHelper wh) throws DbException; /* 名师资料总结

20、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - * 通过 sql 语句,判断是否有记录* param sql 带参数的 sql语句* param params 参数的值* return 记录数* throws DbException */ public boolean hasRecord(String sql,Object params) throws DbException; /* * 通过参数更新数据库的值* param sql 带参

21、数的更新语句* param params 参数值数组* return sql 语句操作的记录数* throws DbException */ public int sqlUpdate(String sql, Object params) throws DbException; /* * 对 Clob 类型的字段进行操作,写 Sql 是注意用参数的方式:,如:update OSIS_XXFB_B_FJ set CLOB_CONTENT=? where wdid=t_wdid and SFZFJ=Y * param sql 带参数的 sql语句* param value Clob字段的值* thr

22、ows Exception */ public void sqlUpdateClob(String sql, char value) throws DbException; /* * 对 Blob 类型的字段进行操作,写Sql 是注意用参数的方式,如:update OSIS_XXFB_B_FJ set BLOB_CONTENT=? where wdid=t_wdid and SFZFJ=Y * param sql 带参数的 sql语句名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9

23、 页,共 14 页 - - - - - - - - - * param value 文件对象* throws com.itlamp.dbsql.DbException */ public void sqlUpdateBlob(String sql, File value) throws DbException; 业务逻辑尽量少用的方法:/* * 通过带参数的 sql 语句把查询结果的第一条记录值赋给对象* param sql 参数的 sql 语句* param params 参数值* param tobj 插入的对象* return 赋值后的对象* throws DbException */

24、public Object sqlSingleQuery(String sql,Object params,Object tobj) throws DbException; /* * 通过带参数 sql 语句获取查询结果* param sql 带参数的 sql语句* param params sql语句中参数值* return Result 查到的结果集* throws DbException */ public Result sqlQuery(String sql,Object params); /* * 通过 sql 获取 List结果集, list 中的元素为实体对象* param sq

25、l 带参数 sql 语句名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - * param params sql语句中参数值* param fclass 实体对象类* return List 数据对象* throws DbException */ public List sqlQueryList(String sql,Object params,Class fclass) throws DbException; /* * 通过

26、sql 获取 List结果集, list 中的元素为 Map 对象* param sql 带参数 sql 语句* param params sql语句中参数值* return List 对象* throws DbException */ public List sqlQueryList(String sql,Object params) throws DbException; /* * 通过 sql 语句,获取本 sql 记录数据* param sql 带参数的 sql语句* param params 参数的值* return 记录数* throws DbException */ public

27、 int sqlRowCount(String sql,Object params) throws DbException; 业务逻辑尽量避免使用方法,如果出现以下方法将会影响考核分public Object find(Object entobj) throws DbException; public Object sqlSingleQuery(String sql,Object tobj) throws DbException; public Object sqlSingleQuery(String sql,Object params,Object tobj) throws DbExcept

28、ion; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - public Result sqlQuery(String sql,String upcase) throws DbException; public Result sqlQuery(String sql) throws DbException; public List sqlQueryList(String sql,Class fclass) throws DbEx

29、ception; public List sqlQueryList(String sql) throws DbException; public int sqlUpdate(String sql) throws DbException; public int sqlListUpdate(List sqllist) throws DbException; public Result sqlQueryCache(String sql) throws DbException; public Result sqlQueryCache(String sql, int timeout) throws Db

30、Exception; 代码具体说明:public class TestSession extends SessionSuper / 多次常用基本SQL语句变量, SQL变量名称须定义成static 型,变量名称需大写增加” _SQL ”/* 获取业务单元基本信息*/ static String YWDY_SQL=select ywmc,ywbm,xtbm from SYS_B_YWDY where #where# order by ywbm; /end 常用 sql / 业务逻辑类的方法区域/* * 添加实体对象方法* param tobj 要添加的实体对象* throws DbExcepti

31、on */ public void Insert(SysBYwdy tobj) throws DbException try this.InsertObj(tobj); catch(SQLException e) /e.pri throw new DbException( “ 操作出差: ” ,e); / 用来做事务控制 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - 5.2 后台管理类后台管理类是前台页面与业务逻辑层进行交

32、互的桥梁,在后台管理类中不允许有数据操作的 sql 语句,后台类通过 实体对象、 WhereHelper 对象、SepArgs对象 、 List数 组 、 Map对 象 等 进 行 值 传 递 ; 后 台 类 必 须 继 承ment.BackBean , 后台类中定义的属性, 用工具生成 get、 set 方法,在 get 方法中如果需要对属性进行初始化必须先进行判断是否为” null” ;业务逻辑类对象通过SessionFactory.getSessionBean(业务逻辑类 )。后台类中不允调用循环调用业务逻辑层的数据操作方法, 不允许一个方法中同时执行业务逻辑两个或两个以上数据库操作方法

33、。类的格式:BackBean(name=testBean) / 后台类的别名为了统一尽量与类名称一直public class testBean extends BaseBean /* 必须继承 BaseBean */private TestSession tmod; / 业务逻辑对象private List data; public testBean () throws DbException / 初始化业务逻辑对象,格式如下tmod=SessionFactory.getSessionBean(TestSession.class); public void setData(List data)

34、 this.data = data; public List getData() throws DbException if(data=null) / get 方法中必须进行空值判读this.getSepArgs().setPageRows(10); SepResult ret=tmod.getResult(this.getSepArgs(); data=ret.getData(); this.getSepArgs().setAllRecord(ret.getAllrecord(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - return data; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁