我是这样理解DAO的,对吗?

我在写一个WEB的轻型应用,想应用DAO,我想DAO模式的主要目的是,使具体的数据库SQL语句与应用分离,我是这样用的,是不是DAO模式
1.INewsDao 接口

public interface INewsDao {
public List getNews(int count,Date today);
...
}
2.NewsDaoOracleImpl 是对应Oracle数据库的一个实现

public class NewsDaoOracleImpl implements INewsDao {
private static NewsHome home=new NewsHome(); //EJB或JDO对象
public List getNews(int count, Date today) {
String sql="select * from news where ...";
List myList=home.getNews(sql); //EJB或JDO调用
return myList;
}
}

3.NewsDaoFactory 类工厂public class NewsDaoFactory {

//返回INewsDao接口类型
public static INewsDao getDao() {
INewsDao newdao = null;

try {
newdao = (INewsDao) Class.forName(
"my.dao.NewsDaoOracleImpl")
.newInstance();
} catch (ClassNotFoundException ce) {
System.out.println("get News Dao ClassNot Found");
ce.printStackTrace();
System.out.println("get News Dao ClassNot Found end...");
} catch (Exception ce) {
System.out.println("get News Dao Exception");
ce.printStackTrace();
System.out.println("get News Dao Exception end...");
}

return newdao;
}
}

多谢!

晕倒了,为什么没人回复

对,只要你分出一层专门用于与数据库打交道都对。

abso-fuck-lute right!

唯一的一点遗憾就是你的factory类实现上需要考虑多数据库的情况,否则会损失dao模式的很多优点

楼上的兄弟:
如果我在DAOFactory类中加入一个函数,判断配置文件中的数据库是什么,加载不同的接口,这样是不是就考虑了不同的数据库处理