JBoss JDBC 使用 restlet 的动态连接器

JBoss JDBC Dynamic Connector using restlet

我需要创建动态 JDBC 连接器,即它必须为不同的 SQL.

动态选择驱动程序

camelContext.xml 中作为 bean 的数据源工作正常。

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

请帮忙。

在处理器 class 中,调用 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());

数据源class:

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;
}}