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