He aqui más ejemplos de Groovy.
1. Paso de parámetros desde Groovy (algo muy parecido a Java):
static void main(String ... args)throws Exception {
def cont=0
def listaVacia=[]
if(args){
args.each{it->
println "${it}, indice: ${cont}"
listaVacia[cont]=it
cont++
}
println "total: "+cont
println "lista: ${listaVacia}"
}else{
throw new Exception("ha ocurrido un error")
}
}
El código es muy sencillo así que no explico mucho sobre el.
2. Calcular el salario bruto y neto:
class Servicios{
def obtenerEntero(){
return (new Scanner(System.in).nextInt())
}
def obtenerReal(){
return (new Scanner(System.in).nextDouble())
}
def obtenerCadena(){
return (new Scanner(System.in).nextLine())
}
def salarioBruto(h,t,e){
return (h*t+e*t*1.5)
}
def salarioNeto(salB){
if(salB<=300){
return salB
}else{
return salB*0.9
}
}
}
static void main(String ... args) {
def obj=new Servicios()
def extras=0
def horas=0
def tasa=0.0
try{
println "Introduce horas: "
horas=obj.obtenerEntero()
println "Horas: ${horas}"
println "Introduce tasa: "
tasa=obj.obtenerReal()
println "tasa: ${tasa}"
}catch(ex){
println "error: ${ex}"+" , causa: "+ex.getCause()
}
try{
if(horas<=38){
extras=0
}else{
extras=horas-38
horas=38
}
}catch(ex){
println "error: ${ex}"+" , causa: "+ex.getCause()
}
println "salario bruto: "+obj.salarioBruto(horas,tasa,extras)
println "salario neto: "+obj.salarioNeto(obj.salarioBruto(horas,tasa,extras))
}
3. Conexión MySQL y Groovy usando el "gestor de dependencias" @Grapes:
import groovy.sql.*
import groovy.grape.Grape
static void main(String ... args)throws Exception {
if(args.size()==0){
throw new Exception("error: debes introducir datos")
}else{
def usuario=args[0]
def clave=args[1]
println "usuario: "+args[0]
inicio(usuario,clave)
}
}
@Grapes([
@Grab('mysql:mysql-connector-java:5.1.12'),
@GrabConfig(systemClassLoader=true)
])
def inicio(usuario,clave){
println "bienvenido: ${usuario}"
Sql sql=Sql.newInstance("jdbc:mysql://localhost/agenda",usuario,clave,"com.mysql.jdbc.Driver")
sql.eachRow("select * from usuarios") {
println "Usuarios de la base: ${it.nomb_us}"
}
}