乐趣区

Mybatis第一天

mybatis 框架
共四天
第一天:mybatis 入门

mybatis 的概述
mybatis 的环境搭建
mybatis 入门案例
自定义 mybatis 框架(主要的目的是为了让大家了解 mybatis 中执行细节)

第二天:mybatis 基本使用

mybatis 的单表 crud 操作
mybatis 的参数和返回值
mybatis 的 dao 编写
mybatis 配置的细节
    几个标签的使用

第三天:mybatis 的深入和多表

mybatis 的连接池
mybatis 的事务控制及设计的方法
mybatis 的多表查询
    一对多(多对一)多对多

第四天:mybatis 的缓存和注解开发

mybatis 中的加载时机(查询的时机)mybatis 中的一级缓存和二级缓存
mybatis 的注解开发
    单表 CRUD
    多表查询

1、什么是框架?

它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题。使用框架的好处:框架封装了很多的细节,使开发者可以使用极简的方式实现功能。大大提高开发效率。

2、三层架构

表现层:是用于展示数据的
业务层:是处理业务需求
持久层:是和数据库交互的

3、持久层技术解决方案

JDBC 技术:Connection
    PreparedStatement
    ResultSet
Spring 的 JdbcTemplate:Spring 中对 jdbc 的简单封装
Apache 的 DBUtils:它和 Spring 的 JdbcTemplate 很像,也是对 Jdbc 的简单封装

以上这些都不是框架
    JDBC 是规范
    Spring 的 JdbcTemplate 和 Apache 的 DBUtils 都只是工具类

4、mybatis 的概述

mybatis 是一个持久层框架,用 java 编写的。它封装了 jdbc 操作的很多细节,使开发者只需要关注 sql 语句本身,而无需关注注册驱动,创建连接等繁杂过程
它使用了 ORM 思想实现了结果集的封装。ORM:Object Relational Mappging 对象关系映射
    简单的说:就是把数据库表和实体类及实体类的属性对应起来
        让我们可以操作实体类就实现操作数据库表。user            User
        id            userId
        user_name        userName
今天我们需要做到
    实体类中的属性和数据库表的字段名称保持一致。user            User
        id            id
        user_name        user_name

5、mybatis 的入门

mybatis 的环境搭建
    第一步:创建 maven 工程并导入坐标
    第二步:创建实体类和 dao 的接口
    第三步:创建 Mybatis 的主配置文件
            SqlMapConifg.xml
    第四步:创建映射配置文件
            IUserDao.xml
环境搭建的注意事项:第一个:创建 IUserDao.xml 和 IUserDao.java 时名称是为了和我们之前的知识保持一致。在 Mybatis 中它把持久层的操作接口名称和映射文件也叫做:Mapper
        所以:IUserDao 和 IUserMapper 是一样的
    第二个:在 idea 中创建目录的时候,它和包是不一样的
        包在创建时:com.itheima.dao 它是三级结构
        目录在创建时:com.itheima.dao 是一级目录
    第三个:mybatis 的映射配置文件位置必须和 dao 接口的包结构相同
    第四个:映射配置文件的 mapper 标签 namespace 属性的取值必须是 dao 接口的全限定类名
    第五个:映射配置文件的操作配置(select),id 属性的取值必须是 dao 接口的方法名

    当我们遵从了第三,四,五点之后,我们在开发中就无须再写 dao 的实现类。mybatis 的入门案例
    第一步:读取配置文件
    第二步:创建 SqlSessionFactory 工厂
    第三步:创建 SqlSession
    第四步:创建 Dao 接口的代理对象
    第五步:执行 dao 中的方法
    第六步:释放资源

    注意事项:不要忘记在映射配置中告知 mybatis 要封装到哪个实体类中
        配置的方式:指定实体类的全限定类名
    
    mybatis 基于注解的入门案例:把 IUserDao.xml 移除,在 dao 接口的方法上使用 @Select 注解,并且指定 SQL 语句
        同时需要在 SqlMapConfig.xml 中的 mapper 配置时,使用 class 属性指定 dao 接口的全限定类名。明确:我们在实际开发中,都是越简便越好,所以都是采用不写 dao 实现类的方式。不管使用 XML 还是注解配置。但是 Mybatis 它是支持写 dao 实现类的。

6、自定义 Mybatis 的分析:

mybatis 在使用代理 dao 的方式实现增删改查时做什么事呢?只有两件事:第一:创建代理对象
        第二:在代理对象中调用 selectList
    
自定义 mybatis 能通过入门案例看到类
    class Resources
    class SqlSessionFactoryBuilder
    interface SqlSessionFactory
    interface SqlSession

新建一个普通的工程

退出移动版