首页 > 其他 > 详细

3、Mybatis 中用的设计模式

时间:2020-07-06 22:54:30      阅读:69      评论:0      收藏:0      [点我收藏+]
//    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();

3、Mybatis 中用的设计模式

原文:https://www.cnblogs.com/Ryuichi/p/13257960.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!