1、本文档为泛微协同商务系统(Ecology )程序员开发指导文档,讲述 底层工具包的应用,常用功能的开发。2.底层包应用及范例利用底层的工具包进行开发开发人员可以从这里学到怎样2.1最基本的继承类继承的例子如下:java bea n 的继承public class ResourceCo mlnfo exte nds BaseBea n public void doSomething() II 某一个方法方法的处理 writeLog(s); 写日志2.2怎样记录日志注意 writeLog 方法的使用:/* 将某个对象写入 Log 文件* param obj 被写入的对象*/public void
2、writeLog(Object obj)2003年 8月 12日的日志。当天的日志为 ecology.log 。每一条日志的记录 格式为 :YYYY .MM.DD-HH:MM:S记录日志的类名-日志信息比如:20032004-01-10 and A.reportdate 0 and A.inputstatus9 and A.modtype= 日志的记录有两种模式,第一种为调试模式,第二种为在线模式。在第一种 模式下,所有的 java 对象都会记录到日志文件中,包括调试信息,在第二 种模式下,只有为 Exception (异常)的对象才会记录到日志文件中。模式 的设置在 /ecology/WEB
3、-INF/ log4jinit.properties 属性文件中的log4j.rootLogger 属性来指定,如下: log4j.rootLogger = INFO,A2#if you want to open the trace from open source,just add # aheadof line#dont modify the file property 上面的日志表明将所有的信息答应到文件日志文件中 ,其中日志的模式为: #FATAL 0#ERROR 3#WARN 4 只有 WARN,ERROR,FAT输出#INFO 6 所有的 log 都输出#DEBUG 7记录日志的例子
4、如下:public class ResourceComInfo extends BaseBean private void setResourceInfo() throws Exceptiontry业务处理过程 String debugInfo = This is test ;/ 在调试模式下将会记入日志文件writeLog(debug info is + debugInfo) ;catch(Exception e) / 在任何模式下出现异常,都将会记入日志文件writeLog(e) ;throw e ; 记录的日志文件形式为: 2007-10-15 16:51:50,125 DEBUG we
5、aver.hrm.resource. ResourceComInfo - debug info is This is test 如果有异常,将会记录为:2007-10-15 16:50,125 ERROR weaver.hrm.resource. ResourceComInfo -at weaver.hrm.resource. ResourceComInfo (ResourceComInfo.java:59) 从上面的日志信息,可以看到 ResourceComInfo 类的 59 行代码运行的时候 出现错误,这个错误是执行数据库操作的脚本错误,具体的错误信息是:形 式参数id_1定义为OUTP
6、UT但实际参数却未声明为 OUTPUT说明调 用数据库脚本的时候参数的数量有出入。开发过程中请将日志级别设置为INFO,通过日志可检查程序在哪里出错了。2.3怎样获取属性文件的值 getPropValue 方法获取属性文件的值。 注意这里是使用, 而不是调用, 因为 这个方法是这两个被继承类中的方法。注意 getPropValue 方法的使用:*从配置文件中获取某个属性的值*param fname 属性文件名称* param key 值* return String 属性值public String getPropValue(String fname , String key) getProp
7、Value 方法指定了从某一个属性文件 fname 中获取键值 key 的值。 这里的属性文件必须存放在系统运行目录下的 WEB-INF/prop 目录下,文件 名称为参数 fname 指定的文件名,不包括属性文件的后缀名,属性文件的后 缀名必须为 .properties 。 系统的运行目录为 ,那么属性文件必须放在d:ecologyWEB-INFprop 目录下,取名为 thefilename.properties , 其中 thefilename 是任意的。在属性文件中某一个键值的值用等号来赋值,等号后面的值必须放在一行, 如果一行不够写(或者为了查看的方便),可以用 来链接多行。否则其
8、它行的值不能被键值取得。等号左右都可以有空格,对键值和键值的值没有 影响。比如 :thekeyname = thevalue将键值的值放到多行:thekeyname = thevalue1 thevalue2 thevalue3thevalue4这时候 thekeyname 的值为 thevalue1thevalue2thevalue3 ,thevalue4 取不到,因为 thevalue3 后面没有 在程序中要取得上述属性文件中键值 thekeyname 的值,使用方法: getPropValue( “ thefilename ” , “ thekeyname”);获取属性文件的值的例子如下
9、:String keyValue = getPropValue( “ thefilename ” , “thekeyname”);/ 将键值 thekeyname 的值 keyValue 记入日志文件 writeLog(keyvalue is + keyValue) ;系统的主属性文件 weaver.properties 的文件名“ weaver” 作为系统常量放在 weaver.general.GCONST 类中,可以使用 getConfigFile() 方法来返 回 “weaver ”,在编程的过程中,如果需要用到 weaver.properties 属性 文件中的键值,请用 GCONST
10、g.etConfigFile() 来获取,当主属性文件名称 因为需要改变得时候,不必改变所有用到这个属性文件的类,只需要改变 GCONS类中常量的值2.4怎样获取系统的运行目录weaver.general.GCONST 类提供了一个静态方法 getRootPath() ,返回系统 的运行目录,比如系统的运行目录为 d 盘的 ecology 目录,将返回 d:ecology获取系统的运行目录的例子如下:public class TestBean extends BaseBean import weaver.general.GCONST ;public void getSysRunPath()St
11、ring sysRunPath = GCONST. GetRootPath() ;/ 将系统的运行目录 sysRunPath 的值记入日志文件 writeLog(sysRunPath is + sysRunPath) ;2.5怎样访问和运行数据库脚本Ecology 系统的链接池管理请参见 weaver.conn.ConnectionPool , weaver.conn.DBConnectionPool , weaver.conn.ConnCheckerTimer 类的 API 文档, weaver.conn.ConnectionPool 用于管理 ecology 系统中的所有 数据库链接池 (
12、ecology 系统可以同时链接多个数据库, 每一个数据库均有一 个对应的数据库链接池,由 weaver.conn.DBConnectionPool 负责管理,而 weaver.conn.ConnectionPool 则是这些链接池的大管家, 负责所有链接池的 协调和统一对外接口 ) ,weaver.conn.DBConnectionPool 用于建立和管理对 某一个数据库的链接池, weaver.conn.ConnCheckerTimer 用于监控各个链接 池的状况,定期对数据库链接池中不符合要求的链接进行清理,并监视是否 需要在某一链接池中建立新的链接。RecordSet 执行数据库操作有
13、两种形式,一种为调用存储过程,另一种为直 接执行SQL语句。与ConnStatement不同,RecordSet执行SQL语句不分 查询和修改,都在一条语句中执行。 RecordSet 执行脚本的方式如下:1、 使用默认的链接池执行SQL语句:RecordSet rs = new RecordSet() ;rs.executeSql( select * from TB_Example ) ;while( rs.next() ) String thename = rs.getString(name其它处理代码.2、 使用指定的链接池ecologytest执行SQL语句 update TB_Exa
14、mple set name = the new value , ecologytest ) ;3 、使用指定的链接池 ecologytest 执行存储过程 PD_Example_UpdateById 存储过程 PD_Example_UpdateById 如下:CREATE PROCEDURE PD_Example_UpdateById (name varchar(100),id int,flag integer output,msg varchar(80) output)ASupdate TB_Example set name = name where id= id GOString newname = ;String
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1