1.基础model类
package com.testcurd;
public class BasicModel {
protected String table;
public String getTable() {
return table;
}
public void setTable(String table) {
this.table = table;
}
}
2.定义基本curd接口
package com.testcurd;
public interface CurdService<T extends BasicModel> {
public void insert(T t);
public void update(T t);
public void delete(T t);
public T select(T t);
}
3.基本curd实现
package com.testcurd;
public class CurdBasicServiceImpl<T extends BasicModel> {
public void insert(T t) {
System.out.println("insert into "+t.getTable());
}
public void update(T t) {
System.out.println("update "+t.getTable());
}
public void delete(T t) {
System.out.println("delete "+t.getTable());
}
public T select(T t) {
System.out.println("select "+t.getTable());
return null;
}
}
4.分别定义两个具体的业务类及其service层
cat
package com.testcurd;
public class Cat extends BasicModel {
public Cat() {
this.table="cat";
}
}
catService
package com.testcurd;
public interface CatService extends CurdService<Cat>{
}
catServiceImpl
package com.testcurd;
public class CatServiceImpl extends CurdBasicServiceImpl<Cat> implements CatService {
}
dog类
package com.testcurd;
public class Dog extends BasicModel {
public Dog() {
this.table="dog";
}
}
dogService
package com.testcurd;
public interface DogService extends CurdService<Dog> {
}
dogServiceImpl
package com.testcurd;
public class DogServiceImpl extends CurdBasicServiceImpl<Dog> implements DogService {
}
5.测试
package com.testcurd;
public class TestUnit {
public static void main(String args[]) {
DogServiceImpl di=new DogServiceImpl();
Dog d=new Dog();
di.delete(d);
di.insert(d);
di.select(d);
di.update(d);
CatServiceImpl ci=new CatServiceImpl();
Cat c=new Cat();
ci.delete(c);
ci.insert(c);
ci.select(c);
ci.update(c);
}
}
结果
delete dog
insert into dog
select dog
update dog
delete cat
insert into cat
select cat
update cat