外部数据源
一、接口说明
该接口主要用来在e-cology配置和异构系统的数据库的链接方式,通过此链接在e-cology中直接操作其他系统的数据。该接口适用于SQLSERVER,ORACLE,MYSQL,DB2,INFORMIX,SYBASE结构型数据库。
二、使用说明
1、配置数据源
可通过两种方式配置外部数据源,一种是修改配置文件(此方式需要重新resin服务器),另一种是通过可视化页面进行配置(此方式无需重启resin服务器):
(1)修改配置文件datasource.xml(该文件位于/ecology/WEB-INF/service/datasource.xml),配置文件内容如下图所示:
其中,数据源配置文件上的各个属性分别表示:
ID:引用数据源的唯一标识,该配置文件中不能重复
Type:数据库类型(sqlserver2000, sqlserver2005, sqlserver2008,oracle,mysql,Informix,db2,sybase)
Host:数据库服务器地址
port:数据库服务的端口号
Dbname:数据库名(实例名)
User:访问数据库的用户名
password:访问数据库的密码
minconn:访问该数据库最大连接
maxconn::访问该数据库最小连接
(2)通过可视化页面(访问菜单:【设置】=》【设置中心】=》【外部接口设置】=》【数据源配置】进行访问;也可以直接访问地址/servicesetting/datasourcesetting.jsp页面进行访问),如下图所示:
右键点击【新建】菜单,即可进入如下界面进行配置:
数据源名称:即xml配置中的id; 这个是引用该数据源的唯一标识
数据库类型:即xml配置中的Type:数据库类型(sqlserver2000, sqlserver2005, sqlserver2008,oracle,mysql,Informix,db2,sybase)
服务器ip:即xml配置中的Host: 数据库服务器地址
端口号:即xml配置中的port:数据库服务的端口号
数据库名:即xml配置中的Dbname:数据库名(实例名)
用户名:即xml配置中的User:访问数据库的用户名
密码:即xml配置中的password:访问数据库的密码
最小连接数:即xml配置中的minconn,maxconn: 访问该数据库最小连接
最大连接数:即xml配置中的minconn,maxconn: 访问该数据库最大连接
2、使用数据源
在ecology中使用数据源可以通过两种方式调用,如下所示:
(1)通过数据源获取数据库连接,如下示例:
List data = new ArrayList();
DataSource ds = null;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
ds = (weaver.interfaces.datasource.DataSource) StaticObj.getServiceByFullname((“datasource.other”), weaver.interfaces.datasource.DataSource.class);
conn = ds.getConnection();
ps = conn.prepareStatement(“SELECT 1 FROM DUAL”);
rs = ps.executeQuery();
while(rs.next()){
data.add(rs.getString(1));
}
} catch(Exception e){
e.printStackTrace();
} finally {
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps != null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
以上调用通过以下关键代码获取数据库连接:
weaver.interfaces.datasource.DataSource ds = (weaver.interfaces.datasource.DataSource) StaticObj.getServiceByFullname((“datasource.数据源名称”), weaver.interfaces.datasource.DataSource.class);
java.sql.Connection conn = ds.getConnection();
(2)通过weaver.conn.RecordSetDatasource类进行外部数据源的连接,如以下示例代码:
List data = new ArrayList();
RecordSetDataSource rs = null;
try{
rs = new RecordSetDataSource(“other”);
if(rs.executeSql(“SELECT 1 FROM DUAL”)){
while(rs.next()){
data.add(rs.getString(1));
}
}
} catch(Exception e){
e.printStackTrace();
}
以上关键代码为:
RecordSetDataSource rs = new RecordSetDataSource(数据源名称);