我们正在使用Java / Spring / Ibatis / MySql。有没有办法使用这些技术来管理应用程序级别的只读连接。我希望在拥有只读MySql用户的基础上添加额外的保护层。如果BasicDataSource或SqlMapClientTemplate为只读连接提供配置,那将是很好的。否则,我似乎只留给MySql读取用户并仅使用读取方法强制执行接口。
由于
答案 0 :(得分:3)
BasicDataSource有一个名为defaultReadOnly属性的属性,可将其设置为只读。你可以使用它。
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="org.postgresql.Driver"/>
<property name="url" value="jdbc:postgresql://${db.host}:5432/${db.name}"/>
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>
<property name="defaultReadOnly" value="true"/>
</bean>
http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/BasicDataSource.html
答案 1 :(得分:2)
例如Connection#CreateStatement可以带参数
statement = connection.createStatement
(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
答案 2 :(得分:1)
尝试获取基础java.sql.Connection
对象和setReadOnly(true)
。