torsdag 16 januari 2014

DAO to Service

Compile and run separatelly!

       
//JAVA BEAN, Expando Bean works bad without binding of CXF
package test;

public class Customer
{

        private int id;
        private String lastname;
        private String firstname;
        private String city;
        
        
  public int getId()
  {
    return this.id;
  }
  
  public void setId(int paramInt)
  {
    this.id = paramInt;
  }
  
  public String getLastname()
  {
    return this.lastname;
  }
  
  public void setLastname(String paramString)
  {
    this.lastname = paramString;
  }
  
  public String getFirstname()
  {
    return this.firstname;
  }
  
  public void setFirstname(String paramString)
  {
    this.firstname = paramString;
  }
  
  public String getCity()
  {
    return this.city;
  }
  
  public void setCity(String paramString)
  {
    this.city = paramString;
  }

}

//Groovy DAO


package test
//In-memory DB 
@Grab(group='com.h2database', module='h2', version='1.3.168')

import groovy.sql.Sql

class CustomerDAO
{   


   
    private def sql
    public CustomerDAO()
    { 
        init()
    }
    private void init()
    {
        sql = Sql.newInstance("jdbc:h2:mem:db1", "sa", "sa", "org.h2.Driver")
        sql.execute("""CREATE TABLE Customers
                        (
                        id int,
                        lastname varchar(255),
                        firstname varchar(255),
                        city varchar(255)
                        ); 
                    """)

        sql.execute("""INSERT INTO CUSTOMERS (id, lastname, firstname, city) VALUES (1,'Enrot','Tommy','Stavanger');""") 
        println sql.rows("select * from CUSTOMERS")

    }
    Boolean addCustomer(Integer id, String lastname, String firstname, String city)
    {
        def r = sql.execute("""INSERT INTO CUSTOMERS (id, lastname, firstname, city)
                       VALUES ($id, $lastname, $firstname, $city); """)
        return r==null?false:true;
    }
    
    Customer getCustomerByLastname(String lastname)
    {              
       GroovyRowResult res =  sql.firstRow("select id,lastname,firstname,city from CUSTOMERS WHERE lastname=$lastname")
       println res.containsKey('id')
       println res.id+", "+res.lastname+", "+res.firstname+", "+res.city
      
       return  new Customer(id:res.id,lastname:res.lastname,firstname:res.firstname,city:res.city)
    }
}


//Kick on WS

@Grab(group='org.codehaus.groovy.modules', module='groovyws', version='0.5.2')
import groovyx.net.ws.WSServer


def server = new WSServer()

server.setNode("test.CustomerDAO", "http://localhost:6999/CustomerService")

server.start()
       
 

Inga kommentarer:

Skicka en kommentar