首先在src下面新建一个配置文件daoconfig.properites
内容如下:userDaoClass=com.mengya.dao.impl.UserDaoJdbcImpl
DaoFactory类的内容如下:
public class DaoFactory {
private static UserDao userDao = null; //UserDao是UserDaoJdbcImpl的接口
private static DaoFactory instance = new DaoFactory();
private DaoFactory() {
try {
Properties prop = new Properties();
InputStream inStream = DaoFactory.class.getClassLoader()
.getResourceAsStream("daoconfig.properties");
prop.load(inStream);
String userDaoClass = prop.getProperty("userDaoClass");
Class clazz = Class.forName(userDaoClass);
userDao = (UserDao) clazz.newInstance();
} catch (Throwable e) {
throw new ExceptionInInitializerError(e);
}
}
public static DaoFactory getInstance() {
return instance;
}
public UserDao getUserDao() {
return userDao;
}
}
说明:private static UserDao userDao = null;
与private static DaoFactory instance = new DaoFactory();位置不能换。
程序执行顺序是首先申明了一个空的userDao,执行new DaoFactory()的时候将userDao实例化了,如果它们的顺序换了则会出错,userDao是null的.
测试:
public class UserDaoTest {
public static void main(String[] args) {
UserDao userDao = DaoFactory.getInstance().getUserDao();
User user = new User();
user.setBirthday(new Date());
user.setName("dao name2");
user.setMoney(1000.0f);
userDao.addUser(user);
System.out.println(user.getId());
}
}
分享到:
相关推荐
而DAO工厂模式则进一步抽象了DAO的创建过程,提供了一种灵活的方式来实例化不同类型的DAO,以操作不同的数据表或数据源。 1. **DAO(数据访问对象)**:包含具体的数据操作方法,如CRUD(Create, Read, Update, ...
在这个基于DAO工厂模式的三层架构示例项目中,我们将深入探讨每一层的功能以及DAO工厂模式在其中的作用。 **表现层(Presentation Layer)** 表现层是用户与系统交互的界面,它负责接收用户的输入,处理用户的请求...
在Java开发中,DAO模式通常与其他设计模式结合使用,如工厂模式(创建DAO实例)、策略模式(根据策略选择不同的数据访问方式)、单例模式(管理全局唯一的DAO实例)等,以进一步提升系统的灵活性和可维护性。...
DAO(Data Access Object)设计模式是一种在软件工程中常见的用于处理数据访问的模式,它将业务逻辑和数据访问逻辑分离,使得系统更加模块化,提高了代码的可复用性和可测试性。在这个“DAO设计模式(工厂+代理)”...
工厂模式和DAO(Data Access Object)模式是两种常见的设计模式,它们在处理数据库操作时发挥着关键作用。本示例旨在帮助初学者理解如何结合这两种模式来高效地与数据库交互。 首先,我们来详细探讨工厂模式。工厂...
-AJAX整合Struts无刷新分页.IE和FireFox都能运行 -在Eclipse3.1+MyEclipse4.3+TomCat5.5.12下测试通过 -在Eclipse3.3+MyEclipse6.0.1+TomCat5.5.15下测试通过 -注释详细 -希望初学者能有所收获,高手...
在软件设计模式中,工厂模式和DAO(Data Access Object)模式是两种常用的设计模式,它们在实际开发中扮演着至关重要的角色。工厂模式是创建型设计模式,它提供了一种创建对象的最佳方式,而DAO模式则是一种数据访问...
3. **业务层**:业务逻辑层通过依赖注入或者工厂模式获取DAO实例,然后调用DAO接口的方法来完成数据处理任务,这样可以确保业务代码不直接与数据库打交道,降低了耦合度。 4. **事务管理**:在DAO实现中,通常需要...
5. **构建DAO工厂类**:通过工厂模式创建DAO实现类的实例。 6. **编写前端页面**:前端页面调用DAO工厂类,通过工厂返回的DAO实例进行数据库操作。 **示例:** 假设我们正在开发一个用户登录功能,可以通过以下步骤...
在当前情况,可以提供一个抽象的DAO工厂对象(抽象工厂),用他来创建不同类型的具体DAO工厂,每一个工厂都各自支持一种不同的数据持久化储存的实现. 一旦你为某个特定的实现获得了具体的DAO工厂,你则可以用这个工厂来...
本项目“工厂模式很DAO模式实现购物车”是使用Java语言实现的一个购物车系统,旨在帮助初学者理解并运用这两种设计模式。 首先,我们来看**工厂模式**。工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳...
3. **业务组件**:如实体Bean、会话Bean、Servlets和JSP助手对象等,它们通过依赖注入(Dependency Injection)或者工厂模式获取DAO实例,然后调用DAO接口来完成数据操作。 4. **事务管理**:在J2EE环境中,DAO通常...
DAO(Data Access Object)设计模式是一种在软件工程中用于封装对数据库访问的模式,它将业务逻辑和数据访问逻辑分离,提高代码的可重用性和可测试性。在这个基于DAO设计模式的新闻发布系统中,我们可以深入探讨以下...
3. **DAO工厂**:用于创建DAO实例,可以根据需求动态地返回不同数据库实现的DAO。在单数据库实现的情况下,可能会采用工厂方法设计模式。 4. **Value Object (VO)**:值对象,通常用来与DAO交互,作为数据传输对象...
- **DAO工厂类**:负责创建不同的DAO实例。 - **DAO接口**:定义了数据访问的方法签名,通常包括增删改查等操作。 - **DAO具体实现类**:实现DAO接口,负责具体的数据库交互逻辑。 - **数据传递对象**(Data ...
在数据访问场景中,抽象工厂模式可能被用来创建不同数据库(如Oracle、MySQL)的DAO实现,这样客户端可以根据需要选择合适的数据库工厂,获取相应的DAO实例。 **应用案例** 在实际的J2EE项目中,DAO模式常与Spring...
在实际开发中,还可以结合其他设计模式,如工厂模式创建DAO实例,使用策略模式处理不同的数据访问策略,以进一步优化和扩展系统。 总的来说,DAO设计模式是Java Web开发中不可或缺的一部分,它有助于构建灵活、可...
- 使用DAO工厂模式创建DAO实例,以支持不同数据库的切换。 综上所述,Java DAO模式是企业级Java应用中处理数据库操作的标准方式。通过合理地设计和实现DAO,我们可以构建出健壮、可扩展的系统。在"Chapter08DAO...
总结来说,DAO设计模式是软件工程中用于处理数据访问的重要模式,它提高了代码的可复用性和可维护性,同时通过接口隔离了业务逻辑和数据操作的细节。在Java开发中,DAO模式常常结合JDBC或其他ORM框架实现,以实现对...