categories: MyBatis
MyBatis框架学习笔记
是一款优秀的ORM(Object/Relation Mapping)对象关系映射 半自动轻量级持久层框架。
大量使用设计模式
1 Builder模式 SqlSessionFactoryBuilder
含义 :使用多个简单的对象构建成一个复杂的对象。
1 | InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml"); |
2 工厂模式 SqlSessionFactory
含义:根据参数的不同 返回不同类的实例。
1 | SqlSession sqlSession = sqlSessionFactory.openSession(); |
3 代理模式
动态代理模式
一般采用接口的形式定义Mapper 其底层使用的就是Jdk的动态代理技术
1 | IUserDao mapper = sqlSession.getMapper(IUserDao.class); |
总体流程
1加载配置文件并初始化
将文件 加载成字节输入流,并将xml文件内容解析到Configuration类中的属性中
2处理操作请求
SqlSession接口的默认实现DefaultSqlSession 中的Executor 执行器,解析参数,然后执行底层的JDBC操作。
3 返回处理结果
执行器 具体执行后 将数据库的查询 结果通过反射对应的具体的类中。
复习整理
持久层框架是由于传统的JDBC连接数据库的方式存在硬编码、频繁创建和释放数据库连接、需要手动封装结果集等问题而诞生的;
硬编码采用配置文件来规避,config.xml中定义数据库的配置信息和mapper文件的基本信息,mapper.xml中定义sql的配置信息包括sql语句、参数类型、返回值类型等;
实现流程:
总体流程
加载配置文件;
第一步:加载配置文件
第二步:创建两个javabean存放加载出来的配置信息;
第三步:解析配置文件并保存对应信息到javabean中
第四步:使用工厂模式生产sqlSession;
第五步:定义对数据库的CURD操作;
第六步:创建Executor实现具体的增删改查动作(使用JDBC);
第七步:使用反射(内省)封装返回结果集。