Mybatis框架1 ORM思想 基于dao接口的(动态代理)实现方式 1核心配置文件 2接口 3sql映射文件 4 测试类

学习路线

Mybatis:3d
	Day1:mybatis入门(完成数据库的CRUD)
	Day2:动态SQL,多表操作
	Day3:配置,注解编程
Spring:4d
Spring mvc:3d

Maven高级 :1d
货代平台:15d

三层结构
Web层:接收请求,做出响应
	Mvc (spring mvc)
Service层:和需求相关代码(业务)
	spring
Dao层:只做数据库的CRUD
	mybatis

在这里插入图片描述
1.1 Dao层的技术手段
在这里插入图片描述

1.2 ORM思想
ORM思想: object relational mapping (对象关系映射)

* 实体类和数据库映射关系	
* 实体类中属性和表中字段的映射关系

操作实体类就相当于操作数据库表

Hibernate,Jpa:完全实现了ORM思想
Mybatis:部分实现(sql语句)

2 Mybatis的概述
Mybatis是apache提供的一个开源的,轻量级的持久层框架。重点关注的sql语句编写。

在这里插入图片描述
在这里插入图片描述
3. Mybatis入门案例
3.1 统一开发环境
Jdk:1.8,maven仓库
在这里插入图片描述
3.2 数据库准备
在这里插入图片描述
3.3 创建工程导入坐标

<dependencies>
    <!--mybatis坐标-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.0</version>
    </dependency>
    <!--mysql驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
    <!--日志log4j-->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.12</version>
    </dependency>
    <!--junit单元测试-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

3.4 创建mybatis的核心配置文件
位置:工程的resource根部目下
命名:sqlMapConfig.xml

在这里插入图片描述

3.5 创建sql映射文件
3.5.1 用户实体类
在这里插入图片描述
3.5.2 Sql映射文件
位置:放到resource目录下
命名:实体类名Mapper.xml
在这里插入图片描述
3.6 测试
在这里插入图片描述
4. Mybatis的核心API对象
4.1 Resources
加载mybatis的核心配置文件
工具类:Resources.getResourceAsStream(“sqlMapConfig.xml”);
返回:文件输入流

4.2 SqlSessionFactoryBuilder
加载配置文件,根据配置文件创建SqlSessionFactory
方法:SqlSessionFactory.build(is)
返回:SqlSessionFactory工厂
4.3 SqlSessionFactory
工厂模式:创建SqlSession
特点:线程安全的对象,一个工程只创建一个SqlSessionFactory不存在线程安全问题
多个线程访问同一个SqlSessionFactory : 单例对象
4.4 SqlSession
作用:用于执行sql语句
方法:insert保存,update 更新,delete 删除,selectOne 查询一个对象,selectList 查询多个
getMapper 创建dao接口的动态代理对象(创建dao接口的实现类)
特点:SqlSession不是一个线程安全的对象
一个请求创建一个SqlSession对象:多例对象
5. 封装工具类
5.1 封装sqlSession工具类
在这里插入图片描述
5.2 抽取测试基类
在这里插入图片描述
6. Mybatis中基于dao层应用
6.1 传统的使用方式(了解)
在这里插入图片描述
6.1.1 配置dao接口
在这里插入图片描述
6.1.2 配置dao接口的实现类
在这里插入图片描述
6.1.3 配置sql映射文件
在这里插入图片描述
6.1.4 测试
在这里插入图片描述
6.2 基于dao接口(动态代理)的使用方式(重点)
在这里插入图片描述
在这里插入图片描述
6.2.1 约定
Namespace = dao接口的权限定类名
Sql的Id = 执行的方法名称
6.2.2 配置dao接口
在这里插入图片描述
6.2.3 配置sql映射文件
在这里插入图片描述
6.2.4 测试
Session.getMapper(接口的字节码对象) : 创建dao接口的实现类(动态代理)
在这里插入图片描述
7. Mybatis的增删改
使用基于动态代理的方式编写dao
7.1 操作步骤

1.创建工程导入坐标
2.创建mybatis的核心配置文件
3.创建sql映射文件
4.编写dao接口和接口中的方法
5.编写sql语句

7.2 保存用户
7.2.1 接口
在这里插入图片描述
7.2.2 Sql映射文件
在这里插入图片描述
7.2.3 测试
在这里插入图片描述
7.3 更新用户
根据id更新用户
7.3.1 接口
在这里插入图片描述
7.3.2 Sql映射文件
在这里插入图片描述

7.3.3 测试
在这里插入图片描述
7.4 删除用户

7.4.1 接口
在这里插入图片描述
7.4.2 Sql映射文件
在这里插入图片描述
7.4.3 测试
在这里插入图片描述
8. 查询
8.1 查询所有用户
8.1.1 接口
在这里插入图片描述
8.1.2 映射文件
在这里插入图片描述
8.1.3 测试
在这里插入图片描述
8.1.4 说明
在这里插入图片描述
resultType:配置返回值类型
使用条件:当查询的字段和实体类对象属性一致
语法:对象的权限定类名
resultMap:配置字段和属性的映射关系
使用条件:当查询字段和对象属性不一致
在这里插入图片描述
8.2 根据id查询用户
8.2.1 接口
在这里插入图片描述
8.2.2 映射文件
在这里插入图片描述
8.2.3 测试
在这里插入图片描述
8.3 模糊查询
8.3.1 接口
在这里插入图片描述
8.3.2 映射文件
在这里插入图片描述
8.3.3 测试
在这里插入图片描述
9. 面试总结

Mybatis的核心API对象:
Resource,sqlSessionFactoryBuilder,sqlSessionfactory,sqlSession
#{}和${}的区别
	#{}:占位符
		基本数据类型:#{随便写}
		preparStatment处理:预编译
		没有SQL注入风险
${}:字符串拼接
	基本数据类型:${value}
		Statement处理,没有鱼变
		有SQL注入风险

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值