下面是一段很简单的groovy显示某oracle数据库用户下所有表名的代码:
import groovy.sql.*;
db = Sql.newInstance(
'jdbc:oracle:thin:@localhost:1521:orcl',
'abc', 'abc', 'oracle.jdbc.driver.OracleDriver')
tablename = 'tab'
db.eachRow ("select tname from $tablename", {println it})
但是实际使用的时候会爆出这样的错误:
2011-5-11 12:21:55 groovy.sql.Sql eachRow
警告: Failed to execute: select tname from ? because: ORA-00903: invalid table name
Exception in thread "main" java.sql.SQLException: ORA-00903: invalid table name
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
......
这个错误的本质是因为使用的是GString,而不是String,只需要将最后一句改为
db.eachRow ("select tname from $tablename".toString(), {println it})
即可
实际上,使用GString所报的错误不只这一种,也有可能是“无效的列索引”等错误。不过只要记住写入sql的时候把它变为String而非GString即可。
分享到:
相关推荐
5. GString:Groovy的GString允许在字符串中嵌入表达式,例如`"Name is ${name}"`,使得字符串处理更为方便。 6. 枚举和注解的简化:Groovy的枚举和注解创建也比Java更加直观和简洁。 7. 类型推断:Groovy编译器...
1. 引入Groovy库:在Java项目中添加Groovy的相关依赖,通常是`groovy-all`,确保Java能够访问Groovy运行时环境。 2. 创建GroovyClassLoader:使用这个类加载器可以动态加载和执行Groovy脚本。它继承自Java的...
5. **GString与字符串操作**:Groovy的GString是一种可以包含表达式的字符串,它允许你在字符串中嵌入变量值。Groovy还提供了丰富的字符串操作方法,比如`tokenize`, `trim`, `split`等。 6. **集合操作**:Groovy...
5. **GString(字符串插值)**:Groovy的GString允许在字符串中直接插入变量值,使得字符串的构建更加直观。 6. **内建的集合支持**:Groovy提供了丰富的集合操作,如map、filter、each等,使得处理数组和列表变得...
4. **GString**:Groovy的GString可以方便地进行字符串插值,类似于Ruby的字符串模板。 5. **GroovyShell和GroovyScriptEngine**:这些工具允许在运行时执行Groovy脚本,使得Groovy成为理想的脚本语言。 6. ** ...
4. **GString和字符串操作**:Groovy的GString可以包含表达式,如`${expression}`,这使得字符串插值变得简单。此外,Groovy提供了丰富的字符串方法,如`split()`, `trim()`, `contains()`等。 5. **闭包**:闭包是...
4. GString:Groovy的GString(类似于Java的String)支持模板语法,使字符串拼接更直观。 5. 极简的语法:Groovy的语法比Java更加精简,例如,可以省略括号和分号。 Grails框架: Grails是建立在Groovy之上的全栈...
Groovy还引入了GString,这是一种可变字符串,允许在字符串中嵌入表达式,如`${expression}`。此外,Groovy的运算符重载和元编程能力使代码更加简洁和动态。 在安装GroovyEclipse插件后,开发者可以通过Eclipse的...
9. **GString**:Groovy的GString可以方便地进行字符串格式化,类似于Java的String.format()方法。 10. **元编程**:Groovy支持元编程,允许在运行时修改或扩展类的行为,提供了强大的灵活性。 在安装"groovy-...
在字符串处理方面,Groovy引入了GString,这种字符串可以包含表达式,能够在运行时被评估。同时,Groovy还引入了对正则表达式的支持,使得文本模式匹配和处理更加方便。 在集合类型方面,Groovy支持使用范围...
5. **GString**:Groovy的GString可以方便地进行字符串插值,类似模板引擎,使得动态构建字符串变得简单。 6. **Grails框架**:如果对Web开发感兴趣,Groovy的Grails框架是值得探索的。它是一个基于Groovy的全栈...
4. **GString与字符串模板**:Groovy的GString能够方便地进行字符串插值,它允许在字符串中嵌入表达式,使得输出动态内容变得更简单。 5. **Groovy Shell与 Grape**:Groovy Shell提供了一个交互式的环境来执行...
4. **GString与模板引擎**:Groovy的GString能方便地进行字符串插值,源代码中可能会包含使用GString构建动态字符串的例子。同时,Groovy的模板引擎(如Freemarker或Groovy模板)用于生成HTML或其他格式的文本,是...
3. **GString**:Groovy的GString提供了一种更方便的方式来构造字符串,可以包含表达式,这比Java的字符串模板更灵活。 4. **GroovyShell和GroovyScriptEngine**:这两个类允许在运行时执行Groovy代码,是脚本语言...
- Groovy的GString(类似Java的String)支持表达式插入,使得字符串操作更加方便。 - 通过使用`@CompileStatic`注解,Groovy代码可以被静态类型检查,从而获得接近Java的性能。 2. **Groovy与Spring的整合**: -...
4. GString:类似于Java的字符串,但支持占位符表达式,使字符串操作更便捷。 5. 链式调用:对象属性和方法可以连续调用,如`object.property.method()`,增强了代码的可读性。 三、领域应用 1. 脚本和自动化:...
- **GString**:Groovy中的字符串可以使用`${expression}`内嵌表达式,例如`"Hello, ${name}"`。 - **方法默认参数和命名参数**:Groovy允许方法定义默认参数值,并通过键值对的方式调用方法。 - **元编程**:...
apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...
8. **闭包和GString**:Groovy的闭包和GString是其简洁语法的关键元素,闭包提供了一种强大的函数式编程特性,而GString则简化了字符串插值操作。 9. **与Java的无缝集成**:Groovy可以直接调用Java库,Java代码也...