您的位置:首页 > 其它

JThink:发布JThink-Framework-1.0-M6版本

2008-10-28 17:27 197 查看
JThink就是为了解决JAVA应用系统在开发过程中的一系列问题所发起的一个框架。她的主要目的是用于解决JAVA/J2EE应用系统中业务逻辑层面中反复遇到的问题。JThink包括以下几部分内容:资源管理,请求处理,事务处理,连接数据源,数据访问,EJB组件开发,EJB组件访问,日志处理,及一些常String,Data,Number处理的Helper工具类等。

本次发布修改内容:

本次变更加入的主要新特性是对数据对象(DataObject)的支持, SQLExecutor返回的查询结果集,以对象方式
返回,具体对象须要扩展DataObject抽象类,写set/get方法, 以下是set/get的基本写法:
public class Customer extends DataObject {

public Customer(){
setTableName("customers");
setPrimaryKey("ID");
}
public void setId(String id){
values.put("ID", id);
}
public String getId(){
return (String)values.get("ID");
}

... ...
}

注意:还需要在fto-jthink.xml配置DataObjectResultMakerFactory工厂,才能够正常返回DataObject类型的结果集

1) 增加RandomHelper, 用于生成指定范围的随机数, 批量生成随机数等

2) 解决StringHelper的contains方法功能问题

3) 日志接口修改,在LogFactory中增加public Logger create(Class clazz);接口方法

4) 增加数据对象DataObject功能, 增加DataObjectResultMaker和DataObjectResultMakerFactory

5) 加入事务隔离级别, 可以在数据源配置中的连接工厂(connection-factory)节点中配置隔离级别
(isolation-level),以下是当前支持的级别
JDBCTransaction. TRANSACTION_NONE,
JDBCTransaction. TRANSACTION_READ_UNCOMMITTED,
JDBCTransaction. TRANSACTION_READ_COMMITTED,
JDBCTransaction. TRANSACTION_REPEATABLE_READ,
JDBCTransaction. TRANSACTION_SERIALIZABLE

6) 针对JTATransaction事务,增加设置超时功能,在JTATransaction中增加设置事务超时方法,
以及在fto-jthink.xml中的事务工厂配置中增加对JTATransaction事务可配置事务超时功能

7) 增加在SQLExecutor中执行SQL时的超时设置(timeout),最大允许结果集行数设置(max-rows)等,可在fto-jthink.xml中配置

8) 增加SystemHelper助手类,与运行环境相关的信息检查,比如检查当前java版本等

9) 在SQLExecutor中增加批量执行SQL语句功能

10) JDBCTransaction中增加以下方法:
public void setAutoCommit(String connId, boolean autoCommit);
public boolean getAutoCommit(String connId);
public void setTransactionLevel(String connId, int level);
public int getTransactionLevel(String connId);

11) 增加对HSQL数据库的内部支持,实现与HSQL相关的SQLBuilder和SQLExecutor

---------------------------------------------------------------------------------------------------------------------------

5.上一版本[M5]变更
1) 解决ConnectionPool相关问题,
在关闭连接池时,IdleTimeoutProcessor线程结束方式有问题,需要修改,通过设置线程活动标记来结束,
去掉:idleTimeoutProcessor.destroy()方法;
超时线程中加上setDaemon(true);标记,使之在主线程退出时此子线程能自动结果。
加入系统退出时钩子事件,主要用于释放当前数据库连接, 就不必再在主客户程序中处理。

2) 将框加中的其它子线程的Daemon标记设置true

3) 将以HashMap为输入参数的方法改为以Map为输入参数

4) 增加ResultMaker的MapResultMaker实现,用于构建Map格式的结果集, 结果集的每一行将以Map数据类型返回

5) 增加可以在配置文件jthink.xml中指定ResultMaker的功能, 加入ResultMakerFactory工厂接口, 客户程序可以
自行编写数据结果构建程序,以按照自己的要求构建数据库表数据结果集,须要实现ResultMakerFactory工厂和
ResultMaker接口
当前系统实现了构建XML结果集的ElementResultMaker实现和构建Map结果集的MapResultMaker实现以及工厂类

6) StringHelper功能扩展
串数组的包含检查,检查一个串是否包含在指定数组中, 方法:contains()
增加join()方法,增加String additive参数,使之可连接出'a','b','c','d','e'格式的串。
增加取子串方法:
substring(int beginIndex, int len)
substring(int beginIndex, String endStr)
substring(String beginStr, int len)
substring(String beginStr, String endStr)
遇到串结束时,将不会抛异常,而是将到结束为止的串返回。其它功能描述见apidocs

7) 增加FileHelper助手类,方便读写文件,处理编码格式等

8) 增加ResponseHelper助手类, 向HTTP Response发送文件,发送图像文件,发送流数据等

9) 其它,解决了一些隐式问题。

项目下载:http://code.google.com/p/jthink-framework/downloads/list(最新版本)和http://cosoft.org.cn/projects/jthink/(1.0-M4及以前版本和例子)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: