这种做法已经相当成熟了。CSDN上资料应该已经很多了。搜一下

解决方案 »

  1.   

    interface: DAOFace();
    implement class: DAOFaceImpl();DAOFace face = new DAOFaceImpl();
    face.addUser();
    ....
    ....
      

  2.   

    to: xwXiang()看的不是很明白请说明一下
      

  3.   

    先定义一个DAO接口如:IHelloDAO,里面定义你要进行的数据库操作的抽象方法如添加记录、查询等
    再写一个DAO实现类实现上边的接口如:HelloDAO,具体实现接口中定义的抽象方法。给你个例子:public interface IUserDAO {   
    public User getByName(String name,String password);
    }public class UserDAO extends HibernateDaoSupport implements IUserDAO{
     
    public User getByName(String name,String password){
    Object[] args=new Object[]{name,password};
    int i=getHibernateTemplate().find("from User i where i.username=? and i.userpassword=?",args).size();
            System.out.println("与该username相同的元素个数是:"+i);
    if (i!=0)
    return (User) getHibernateTemplate().find("from User i where i.username=? and i.userpassword=?",args).get(0);
    else{
    User user=new User();
    user=null;
    return user;
    }
        }}
      

  4.   

    在Action中调用:User user=userDAO.getByName(username,password);
      

  5.   

    当action需要调用多个DAO把new UserDAO 写在action中是否合理?
      

  6.   

    回楼主,new UserDAO放在action中非常不合理。
    不仅不合理,action中就不应该存在DAO。
    比较清晰的做法是
    action--service--dao--数据库
    中间要加一个service层,然后在service层中对dao引用,你现在的做法耦合太严重。
    当然,上述的结构还可以分出很多个层来,但简单应用用上述结构就完全绰绰有余。
      

  7.   

    to: mxlmwl(飞星) 先谢谢!对于service层调用DAO有相关的例子吗?
      

  8.   

    在DAO 层做一个接口,这个接口会是你的DAO的某个业务类的对象,然后在ACTION 层只要得到这个DAO层的接口就可以了,这样做你的ACTION层就和你的DAO层分离开了,粗粒化.
      

  9.   

    没有例子,这种东西现写啦。
    public interface ITestService()
    {
        public abstract void addTest(Test test);
    }public class TestServiceImpl implements ITestService
    {
       private TestDAO testDAO=new TestDAOImpl();
       public void addTest(Test test)
       {
            testDAO.addTest(Test test);
       }
    }public interface TestDAO()
    {
        public abstract void addTest(Test test);
    }public class TestDAOImpl implements TestDAO
    {
        public void addTest(Test test)
        {
               //对实体进行数据库操作
        }
    }你可以用Spring把上面接口注入实例就ok了。
    如果你不用hibernate的话,而用jdbc,就传递参数,然后在dao中写数据库操作。