这几天一直在思考一个问题:就是DAO层是还需要?大家都知道传统的DAO就是对一个对象的增删查改,然而我觉得这些工作完全可以放在这个对象去做,如在这个对象中的除了我们常见的一些属性和setter和getter方法,还可以增加save,find,update,delete方法来完成DAO操作,我结合spring+hibernate做了个简单的save的操作,觉得这完全是可行的。
//所有要保存对象的基类
public class BaseModel extends HibernateDaoSupport{
public String id;//对应中的ID
//定义对象的保存操作
public void save(){
getHibernateTemplate().save(this);
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
//具体的要保存的对象
public class Model1 extends BaseModel implements Cloneable {
private String name;
//无参构造函数
public Model1() {
}
//全参构造函数
public Model1(String anName) {
this.name = anName==null?anName:anName.trim();
}
/**
* 静态构造方法
*/
public static Model1 getInstance() throws Exception {
try{
Model1 model = (Model1)new XmlBeanFactory(
new ClassPathResource("xx/xx/xx/applicationContext.xml")).getBeanFactory().getBean("model1Proxy");
return model;
}catch(Exception e) {
e.printStackTrace();
}
}
}
//hibernate配置
//spring配置
//test
Model1 testModel = (Model1)Model1.getInstance();
Model1.setName("test");
testModel.save();//保存数据
通过我的测试这个save方法是成功的,那我就想如果把所有的增删查改放到对象中应该是完成可行的,这样做的就可以避免了DAO层的编写,而对于DAO层解耦的作用,这里也可以通过不同的BaseModel来实现,可以抽象出一个接口,包括save,find,update,delete方法,通过不同的实现来达到解耦目的!
对于这个想法还处于萌芽状态,希望得到各位的指点,是否具有可行性?