【问题标题】:Spring JdbcTemplate alter sessionSpring JdbcTemplate 更改会话
【发布时间】:2016-09-17 21:06:34
【问题描述】:

我想为从连接池中获得的每个连接更改 Oracle 会话。

我发现只需执行一条语句就可以完成。见here

有没有办法挂钩到jdbc模板或者数据源,在连接池创建新连接后执行语句。

我正在使用 Spring Boot 并以这种方式创建数据源:

@Bean
@ConfigurationProperties(prefix="datasource.local")
public DataSource localDataSource() {
    return DataSourceBuilder.create().build();
}

【问题讨论】:

    标签: java spring oracle datasource


    【解决方案1】:

    有很多方法可以做到这一点。 第一个:

    • DataSource 是一个接口,那你为什么不自己实现它(使用代理模式)?创建类似这样的内容:

      class MyDataSource implements DataSource {
          private DataSource realDataSource;
      
          public Connection getConnection() {
                Connection c = realDataSource.getConnection();
                // do whatever you want to do and
                return c;
          }
      
      }
      

      所有其他方法将直接委托给 realDataSource。

      这个代理可以在提供的代码sn-p中使用。

    • 您可以使用一些 AOP - 只需提供一个建议,即在创建 get 连接后将运行并执行您需要的任何操作。基本上它是同一个代理,但由 Spring 自动创建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多