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 语法简洁
分享到:
相关推荐
由于Groovy脚本可以直接作为文本文件存储,因此部署Groovy脚本非常简单,只需要将脚本文件复制到服务器上的相应位置即可。发布则涉及到让这些脚本对其他系统可见,这可能通过HTTP服务、FTP或版本控制系统来实现。 ...
本文将详细讲解如何在Java应用程序中调用Groovy脚本,实现从MongoDB数据库中读取并实时运行Groovy脚本,以及其背后的原理和优势。 首先,Groovy是一种与Java高度兼容的脚本语言,它可以无缝地与Java代码集成,共享...
本篇文章将重点讲解如何使用Groovy调用Weka来生成决策树。 在Groovy中调用Weka,首先需要确保你的环境中已经安装了Weka库。这通常通过Maven或Gradle等构建工具添加依赖来实现。对于Maven,可以在pom.xml文件中添加...
### Groovy将JDBC中Oracle存储过程游标转换为多层JSON 在本文档中,我们将探讨如何使用Groovy脚本结合JDBC技术从Oracle存储过程中获取数据,并将其转换为多层JSON格式。该方法特别适用于需要从XML输入中提取数据并...
- 使用`groovy.util.Eval`类来评估存储在Java字符串中的简单代码。 - 通过`groovy.util.GroovyShell`提供更灵活的绑定和可选的预解析功能。 #### 三、语言元素 Groovy提供了丰富的语言元素,包括但不限于: - **...
3. **闭包支持**:闭包是Groovy的一个强大特性,它可以像对象一样被传递和存储,用于实现高级编程模式。 4. **元编程**:Groovy支持元编程,可以通过反射机制修改程序的行为。 5. **简洁的语法**:Groovy具有简洁的...
在这个例子中,使用`sql.call`方法来调用存储过程,第一个参数是存储过程的名称加上输入参数的占位符,第二个参数是一个包含实际参数值的列表。 **4. 获取存储过程的返回值** 接下来考虑一个带有返回值的存储过程...
10. **Grails**:基于Groovy的Web开发框架,简化了构建Web应用的过程,特别是通过其内置的GORM(Groovy Object Relational Mapping)和Grails Controller概念。 以上只是Groovy语言中的一部分核心特性。学习和掌握...
4. **闭包**:闭包是Groovy中的关键特性,它是可调用的代码块,可以作为参数传递,也可以存储在变量中。闭包有上下文(owner)和作用域,可以访问和修改这些环境中的变量。 5. **元编程**:Groovy允许在运行时修改...
- **映射(Map)**:Groovy中的映射类似于Java中的HashMap,提供了键值对存储。 - **集合操作**:Groovy提供了丰富的集合操作方法,如filter、find、sort等,使得集合处理变得更加简单。 **4. 闭包** - **定义**...
闭包可以看作是一段可调用的代码块,可以作为参数传递或存储在变量中。下面的例子展示了如何使用闭包: ```groovy def sayHello = { name -> println "Hello, $name!" } sayHello('World') // 输出 "Hello, World!...
Groovy与Java高度兼容,可以直接调用Java库,并能被Java代码调用,这使得它成为混合Java项目的理想选择。在Groovy中,开发者可以利用闭包(Closure)和面向切面编程(AOP)等特性,编写出更加简洁和可维护的代码。 ...
Groovy框架在数据收集中的应用主要涉及到数据的获取、处理和存储,这通常是一个复杂而关键的任务。Groovy,作为一种动态、简洁的编程语言,它能够无缝集成Java平台,因此在构建数据采集系统时,Groovy可以提供高效且...
Spark的主要优势在于它的内存计算能力,通过将数据存储在内存中而不是磁盘上,可以显著提高数据处理速度。 在“groovy-spark-sample”项目中,开发者可能使用了Spark的以下核心组件: 1. **Spark Core**:这是Spark...
- 闭包可在需要时被传递和调用,它们是普通的对象实例,这使得闭包能够像其他对象一样进行赋值、传递和存储。 - 这种特性使得闭包成为函数式编程的核心元素,增强了Groovy的灵活性和表达力。 总之,Groovy通过提供...
MetaClass存储了对象的方法、属性以及如何调用这些方法和属性的信息。你可以为任何对象或类动态地替换其MetaClass,从而改变其行为。 2. **Dynamic Methods**: Groovy允许你在运行时添加新的方法。如果你尝试调用一...
- Map在Groovy中用于存储键值对,创建Map的语法是`[key1: value1, key2: value2]`。 - Map的键值可以通过`.`或`[]`来访问,如`map.key1`或`map['key1']`。 - Map也支持`each`循环遍历键值对。 5. **闭包**: - ...
`MetaClass`是Groovy中的一个核心概念,它是每个Groovy对象的元数据容器,存储了对象的方法、属性以及它们的调用规则。通过`MetaClass`,我们可以对类的行为进行动态扩展,比如在不修改源码的情况下添加新方法或者...
在Groovy编程语言中,Map是一种非常重要的数据结构,它用于存储键值对。在本篇博客中,我们将深入探讨Groovy中Map的基本操作,特别是通过标题和描述中给出的例子。 首先,创建一个Map非常简单。例如,`def map = [a...
4. **集成Java生态系统**:Groovy可以直接调用Java库,无缝对接Java平台的所有资源,同时Java代码也可以方便地调用Groovy代码。 文档中的"Groovy快速入门"部分涵盖了以下几个关键知识点: - **集合**:Groovy支持...