import groovy.sql.Sql
import java.util.concurrent.Executors
class EnrichDataService {
static def executor = Executors.newFixedThreadPool(1)
boolean transactional = true
def impactDataSource
def operLogService
def enrichData(user,controllerName,ip) {
executor.execute({
Sql sql = new Sql(impactDataSource)
operLogService.operLog("开始丰富,ip="+ip, "数据丰富",controllerName, user)
sql.call("{? = call f_update_device_test }",[Sql.INTEGER]) {
operLogService.operLog(it+",ip="+ip, "设备丰富",controllerName, user)
}
sql.call("{ ? = call F_UPDATE_PORTBYTEMPTABLE_TEST } ",[Sql.INTEGER]) {
operLogService.operLog(it+",ip="+ip, "端口丰富",controllerName, user)
}
} as Runnable)
}
}
使用Groovy调用 Oralce 函数的例子,呵呵,还有存储过程的Sample
def refresh(user,controllerName,ip) {
executor.execute({
Sql sql = new Sql(mappingDataSource)
operLogService.operLog("开始同步,ip="+ip, "映射表同步",controllerName, user)
sql.call("call SP_REFLESH(?)",[Sql.VARCHAR]) {
operLogService.operLog(it+",ip="+ip, "映射表同步",controllerName, user)
}
} as Runnable)
}
真的比java要简便的多,不得不佩服Groovy 语法简洁