我有一个groovy应用程序,它使用Oracle DB作为DataSource.
在DataSource.groovy我设置:
dataSource {
pooled = true
driverClassName = "oracle.jdbc.driver.OracleDriver"
username = "scott"
password = "tiger
//loggingSql = true
}
Run Code Online (Sandbox Code Playgroud)
出于某些性能原因,我在以下方式使用sql访问数据库:
def sql = Sql.newInstance("jdbc:oracle:thin:@localhost:1521:XE", "scott", "tiger", "oracle.jdbc.driver.OracleDriver")
Run Code Online (Sandbox Code Playgroud)
也就是说,用户名和密码在应用程序中硬连线两次.我的问题是,是否可以在我的应用程序中解决已在DataSource.groovy中设置的属性用户名和密码.
提前致谢,
路易斯
Lui*_*ixv 10
解决方案是添加一些导入
import javax.sql.DataSource
import groovy.sql.Sql
import org.codehaus.groovy.grails.commons.ConfigurationHolder
Run Code Online (Sandbox Code Playgroud)
和以下代码:
def _url = ConfigurationHolder.config.dataSource.url
def _username = ConfigurationHolder.config.dataSource.username
def _password = ConfigurationHolder.config.dataSource.password
def _driver = ConfigurationHolder.config.dataSource.driverClassName
def sql = Sql.newInstance(_url, _username, _password, _driver)
def query = "<your SQL query>"
sql.eachRow(query){
println "ID: " + it.id // Whatever you need
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7384 次 |
| 最近记录: |