sábado, 24 de noviembre de 2012

Programando en Groovy al estilo Java no. 2



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}"
                }
}

No hay comentarios:

Publicar un comentario