Mybatis是持久层框架,本文是学习过程中的笔记。

Mybatis-1-框架概述

1. 什么框架

1. 什么是框架

2. 框架解决的问题

3. 软件开发中分层的重要性

4.分层开发下的常见框架

5. Mybatis框架概述

2. JDBC编程的分析

1. JDBC开发回顾

  • 开发步骤

    1. 加载驱动
    2. 获取数据库连接对象Connection
    3. 定义SQL语句
    4. 获取preparedStatement对象
    5. 设置参数
    6. 执行查询
    7. 封装结果集

2.jdbc问题分析

  1. 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能(线程池解决该问题)。
  2. Sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变 java 代码。
  3. 使用 preparedStatement 向占有位符号传参数存在硬编码,因为 sql 语句的 where 条件不一定,可能 多也可能少,修改 sql 还要修改代码,系统不易维护。

3. Mybatis框架快速入门

  • 开发步骤

    1. 下载Mybatis框架jar包、或者在maven工程中导入开发坐标
    2. 创建Maven工程,添加其他坐标
    3. 编写User实体类
    4. 编写持久层接口Dao
    5. 编写持久层接口的映射文件Dao.xml
    6. 编写SQLMapConfig.xml
    7. 编写测试类
    • 注意:编写持久层映射文件也可以改为注解的方式,此时SqlMapConfig.xml的映射要改为该接口的全限定类名

4. 自定义Mybatis框架

  • 知识点提要

    工厂模式、构建者模式、代理模式,反射,自定义注解,注解的反射,xml解析,数据库元数据,元数据的反射等。

1. 流程分析

  • SqlMapConfig.xml

    1. 连接数据库信息
    1
    2
    3
    4
    5
    6
    7
    <!--数据库连接信息-->
    <dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/ee50"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
    </dataSource>

    有以上信息,我们可以创建连接数据库的对象Connection。

    1. 映射配置文件
    1
    2
    3
    <mappers>
    <mapper class="top.tobing.dao.UserDao"/>
    </mappers>
    1
    2
    3
    <mappers>    
    <mapper resource="top/tobing/dao/UserDao.xml"/>
    </mappers>

    有以上信息,我们可以通过映射配置文件xml(或者注解的方式获取以下配置文件)

    1. SQL语句以及封装的结果类型
    1
    2
    3
    4
    5
    <mapper namespace="com.itheima.dao.IUserDao">
    <select id="findAll" resultType="com.itheima.domain.User">
    select * from user
    </select>
    </mapper>

    有以上信息,我们可以得到执行的SQL语句,可以获取PreParedStatement对象,还得到了要返回封装结果类的全限定类名。

2. 前期准备

  1. 创建Maven工程
  2. 引入相关坐标
  3. 导入工具类(用于XML解析)
  4. 编写SQLMapConfig.xml
  5. 编写读取配置文件类
  6. 编写Mapper
  7. 编写Configuration配置类
  8. 编写实体类User

3. 基于XML的自定义Mybatis框架

评论