Dorado 5 : 9.2.使用自定义Connection (RF1)

自定义的connection的事务集成
Dorado中默认使用的java.sql.Connection都是通过datasource.xml文件获得,对于某些应用中用户可能还有自己的数据连接配置,dorado中也支持使用用户自定义Connection实现系统的逻辑处理。
首先在setting.xml文件中添加自定义信息:

<property name="common.transactionHandler" value=""/>

这样可以禁用dorado本身的事务管理。
新建一个com.bstek.dorado.common.ds.DataSourceConfig的派生类。实现getConnection方法。

import java.sql.Connection;

public class XXXXDataSourceConfig
extends DataSourceConfig implements ConnectionDelegeteListener {
public Connection getConnection()
throws Exception {
Connection realConnection = null;
// 或许或租借realConnection
AbstractConnectionDelegete connectionDelegete = new XXXXConnection(realConnection);
connectionDelegete.addConnectionListener(this);
return connectionDelegete;
}

public void connectionClosed(Connection connection) {
AbstractConnectionDelegete connectionDelegete = (AbstractConnectionDelegete) connection;
Connection realConnection = connectionDelegete.getConnection();
// 关闭或归还realConnection
}
}




import java.sql.Connection;
import java.sql.SQLException;

public class XXXXConnection
extends AbstractConnectionDelegete {
public XXXXConnection(Connection connection) {
super(connection);
}

public void close()
throws SQLException {
fireConnectionClosed(this);
}

public void setAutoCommit(boolean autoCommit)
throws SQLException {
// do nothing
}

}

在datasource.xml中手工添加一段,配置上面新建的类:

<datasource name="XXX" type="USER">
<clazz>xxxx.XXXDataSourceConfig</clazz>
</datasource>