外部数据源
一、接口说明
该接口主要用来在e-cology配置和异构系统的数据库的链接方式,通过此链接在e-cology中直接操作其他系统的数据。该接口适用于SQLSERVER,ORACLE,MYSQL,DB2,INFORMIX,SYBASE结构型数据库。
二、使用说明
1、配置数据源
可通过两种方式配置外部数据源,一种是修改配置文件(此方式需要重新resin服务器),另一种是通过可视化页面进行配置(此方式无需重启resin服务器):
(1)修改配置文件datasource.xml(该文件位于/ecology/WEB-INF/service/datasource.xml),配置文件内容如下图所示:
<?xml version=”1.0″ encoding=”UTF-8″?>
<module id=”datasource” version=”1.0.0″> <service-point id=”other” interface=”weaver.interfaces.datasource.DataSource”> <invoke-factory> <construct class=”weaver.interfaces.datasource.BaseDataSource”> <set property=”type” value=”oracle” /> <set property=”host” value=”127.0.0.1″ /> <set property=”port” value=”1521″ /> <set property=”dbname” value=”orcl” /> <set property=”user” value=”other” /> <set property=”password” value=”other” /> <set property=”minconn” value=”5″ /> <set property=”maxconn” value=”10″ /> </construct> </invoke-factory> </service-point> </module> |
其中,数据源配置文件上的各个属性分别表示:
- 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<String> data = new ArrayList<String>();
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<String> data = new ArrayList<String>();
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(数据源名称); |
转载请注明:赫非域 » e-cology配置接口之外部数据源