【问题标题】:Calling Connection.setReadOnly() when using Spring JdbcTemplate使用 Spring JdbcTemplate 时调用 Connection.setReadOnly()
【发布时间】:2017-02-08 20:06:13
【问题描述】:

我正在构建一个工具,它使用 Spring JdbcTemplates 通过 mysql-connector-j 库管理任意数量的 MySQL / MariaDB 实例。我需要能够让在给定数据源上执行的任何语句偶尔只读。我宁愿通过 Spring JdbcTemplate 回调或使用 @Transactional 注释调用 Connection.setReadOnly() 的方法,因为每个语句都需要只读。我知道在最坏的情况下,我可以创建一个可以完成工作的包装器 DataSource 类,但我想看看除了代码之外其他人如何支持这种需求。

【问题讨论】:

    标签: java spring jdbc spring-jdbc jdbctemplate


    【解决方案1】:

    在提供的连接上使用JdbcTemplate::execute(ConnectionCallback<T> action),然后使用setReadOnly

    【讨论】:

    • 感谢特雷弗的回复!那么,一旦我构建了一个 DataSource 和 JdbcTemplate 以立即调用此方法并将连接标记为只读,以便所有后续查询/插入/更新/执行都是只读的,想法是什么?
    • 很遗憾,不,您必须在回调中使用直接 JDBC 来运行您的 JDBC。
    猜你喜欢
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 2017-07-24
    相关资源
    最近更新 更多