zoukankan      html  css  js  c++  java
  • 3、Mybatis 中用的设计模式

    //    1、读取配置文件
            /**
             * 读取配置文件的方式
             * 1、绝对路径:从磁盘位置读取配置文件,如:F:/mybatis/mybatis-config.xml,缺点可能别的机器没有F盘
             * 2、相对路径:相对路径从项目的src目录下开始,如:src/main/mybatis.xml,缺点:如果项目是web工程,一旦部署src目录消失
             * 3、使用类加载器(推荐):只能读取类路径下的配置文件
             * 4、使用ServletContext对象的getRealPath(推荐):能得到当前应用部署的绝对路径
             */
            InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
    //    2、创建SqlSessionFactory工厂
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            /**
             * 创建工厂使用了构建者模式:builder.build(in);
             * 优势:将对象的创建细节隐藏,使使用者直接调用该方法获取对象
             */
            SqlSessionFactory sqlSessionFactory = builder.build(in);
    //    3、使用工厂生产SqlSession对象
            /**
             * 生产sqlSession使用了工厂模式:sqlSessionFactory.openSession()
             * 通过工厂模式创建对象的好处:解决了硬编码问题,
             * 直接创建对象的缺点,会降低代码的灵活程度,当需要创建别的对象时,这需要进入代码中进行修改;
             * 优势:解耦(降低类之间的依赖关系)
             */
            SqlSession sqlSession = sqlSessionFactory.openSession();
    //    4、使用SQLSession创建Dao接口的代理对象
            /**
             * 创建mapper实现类使用了代理模式:sqlSession.getMapper(UserDao.class);
             * 优势:不修改源码的基础上对已有方法增强
             */
            UserDao userDao = sqlSession.getMapper(UserDao.class);
    //    5、使用代理对象执行方法
            List<User> users = userDao.findAllUser();
            for (User user: users
                    ) {
                System.out.println(user);
            }
    //     6、释放资源
            sqlSession.close();
            in.close();
    
  • 相关阅读:
    stutas2配置action
    Struts2 第一个入门小案例
    spring与mybati整合方法
    spring事务隔离级别以及脏读 不可重复读 幻影读
    socket编程基础
    ajax随笔
    多线程基础
    Mybatis中collection与association的区别
    Guideline 2.3.1
    苹果手机 apple pay 一不小心支付购买了自己不要的服务
  • 原文地址:https://www.cnblogs.com/Ryuichi/p/13257960.html
Copyright © 2011-2022 走看看