本章将开启mybatis系列
mybatis介绍
mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身, 而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。
mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并 返回。
采用 ORM 思想解决了实体和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我 们不用与 jdbc api 打交道,就可以完成对数据库的持久化操作。 为了我们能够更好掌握框架运行的内部过程,并且有更好的体验,
下面我们将从自定义 Mybatis 框架开始来 学习框架。此时我们将会体验框架从无到有的过程体验,也能够很好的综合前面阶段所学的基础。
public static void main(String[] args) throws IOException { //1.读取配置文件 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); //读取配置文件的常用方法有两种:第一,使用类加载器;第二,使用servletContext对象的getRealPath()方法 //2.创建 SqlSessionFactory 的构建者对象 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();//创建工厂mybatis使用了构建者模式 //3.使用构建者创建工厂对象 SqlSessionFactory SqlSessionFactory factory = builder.build(in);//builder就是构建者 构建者模式:把对像的创建细节隐藏 //4.使用 SqlSessionFactory 生产 SqlSession 对象 SqlSession session = factory.openSession(); //生产SqlSession使用了工厂模式,工厂模式的优势:解耦(降低类间的依赖关系) //5.使用 SqlSession 创建 dao 接口的代理对象 IUserDao userDao = session.getMapper(IUserDao.class); //代理模式:不修改源码的基础上对已有的方法增强 //6.使用代理对象执行查询所有方法 List<User> users = userDao.findAll(); for (User user : users){ System.out.println(user); } //7.释放资源 session.close(); in.close(); }
mybatis在使用代理dao的方式实现增删改查时做什么事呢?
只有两件事:第一,创建代理对象; 第二,在代理对象中调用selectList
数据库配置文件:--------> 解析配置文件,此处用dom4j解析xml技术
下一节将是自定义mybatis框架代码实现,敬请请期待~
原文:https://www.cnblogs.com/wxhao/p/14136185.html