使用restlet的jbossjdbc动态连接器

使用restlet的jbossjdbc动态连接器,jdbc,apache-camel,esb,jbossfuse,connector,Jdbc,Apache Camel,Esb,Jbossfuse,Connector,我需要创建动态JDBC连接器,也就是说,它必须为不同的SQL动态选择驱动程序 camelContext.xml中作为bean的数据源运行良好 我正在尝试创建REST方式,以便连接到DB的凭据和其他信息将被视为JSON,并且必须执行该操作 请提供帮助。在processor类中,调用getDataSource方法时只需几个必需参数:主机、端口、用户名、rdbmsType和模型对象中的密码 DataSource ds = DBCPDataSourceFactory.getDataSource(mode

我需要创建动态JDBC连接器,也就是说,它必须为不同的SQL动态选择驱动程序

camelContext.xml中作为bean的数据源运行良好

我正在尝试创建REST方式,以便连接到DB的凭据和其他信息将被视为JSON,并且必须执行该操作


请提供帮助。

在processor类中,调用getDataSource方法时只需几个必需参数:主机、端口、用户名、rdbmsType和模型对象中的密码

DataSource ds = DBCPDataSourceFactory.getDataSource(model);
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
connection = ds.getConnection();
statement = connection.createStatement();
resultSet = statement.executeQuery(model.getQuery());
数据源类:

public class DBCPDataSourceFactory {
public static DataSource getDataSource(DBModel model) {
    String url = null;
    BasicDataSource ds = new BasicDataSource();
    if (model.getRdbms().toLowerCase().equals(DBConstants.POSTGRESQL)) {
        ds.setDriverClassName(DBConstants.POSTGRESQL_DRIVER);
        url = "jdbc:postgresql://" + model.getHost() + "/" + model.getDatabase();
        ds.setUrl(url); 
    } else if (model.getRdbms().toLowerCase().equals(DBConstants.ORACLE)) {
        ds.setDriverClassName(DBConstants.ORACLE_DRIVER);
        url = "jdbc:oracle:thin:@"+model.getHost()+":"+model.getPort()+":"+model.getDatabase();
        ds.setUrl(url);
    } else if (model.getRdbms().toLowerCase().equals(DBConstants.SQL_SERVER)) {
        ds.setDriverClassName(DBConstants.SQL_SERVER_DRIVER);           
        url = "jdbc:sqlserver://"+model.getHost()+":"+model.getPort()+";databaseName="+model.getDatabase();
        ds.setUrl(url);
    }
    ds.setUsername(model.getUsername());
    ds.setPassword(model.getPassword());
    return ds;
}}