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

03-09-04 chinahero
我在写一个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;

}

}

多谢!

    

chinahero
2003-09-05 20:17
晕倒了,为什么没人回复

bruce
2003-09-07 07:52
对,只要你分出一层专门用于与数据库打交道都对。

j4v4
2003-09-07 20:07
abso-fuck-lute right!

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

猜你喜欢
2Go 1 2 下一页