zoukankan      html  css  js  c++  java
  • 工厂模式 jdbc 面向接口dao 开发 单例

    package com.itheima.utils;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    import com.itheima.dao.UserDao;
    
    /**
     * 引入工厂,用于生成一些对象,为了生成的BeanFactory对象时,
     * 不会生成多个对象(因为BeanFactory作为一个工厂,只要有一个它的对象就可以 了),可以引入单例模式
     * 
     * 2.业务层要调用 Dao的什么 样的实现类,可以放入到配置文件
     * 3.读取配置文件
     * @author wangli
     *
     */
    public class BeanFactory {
    
        private BeanFactory(){}//私有构造
        
        private static BeanFactory instance = new BeanFactory();
        
        //再提供一个公有的方法
        public static BeanFactory getInstance(){
            return instance;
        }
        
        private static String DAO;//用于存储从bean.properties文件 中读取的值
        static{
            try {
                InputStream is = BeanFactory.class.getClassLoader().getResourceAsStream("bean.properties");
                Properties p = new Properties();
                p.load(is);
                DAO = p.getProperty("dao");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        
        public UserDao getUserDaoInstance(){
            try {
                Class clz = Class.forName(DAO);
                return (UserDao)clz.newInstance();//通过反射生成对象  UserDaoMySqlImpl的对象   UserDaoDom4jImpl的对象
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
        
        
    }

  • 相关阅读:
    oracle11g 新特性
    RMAN 报:ORA-19504 ORA-27038
    ORACLE-用户常用数据字典的查询使用方法
    oracle
    收缩 表空间
    oracle 配置 oem
    索引大小及占表的空间
    Oracle 11g Windows 迁移至 Linux
    Python:列表生成式
    Python:字符串处理函数
  • 原文地址:https://www.cnblogs.com/baijin05/p/5072517.html
Copyright © 2011-2022 走看看