【问题标题】:JBoss JDBC Dynamic Connector using restlet使用 restlet 的 JBoss JDBC 动态连接器
【发布时间】:2018-10-02 09:41:25
【问题描述】:

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

camelContext.xml 中作为 bean 的 dataSource 工作正常。

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

请帮忙。

【问题讨论】:

    标签: jdbc apache-camel esb jbossfuse connector


    【解决方案1】:

    在处理器类中,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;
    }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 2018-05-01
      • 2016-03-13
      • 2010-09-21
      • 1970-01-01
      相关资源
      最近更新 更多