文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

一文带你快速搭建框架(最全MyBatis笔记)

2023-09-03 08:00

关注

 

目录

一.概述

1.简介

2.maven构建

二.相关概念

1.Mapper接口

2.ORM思想

三.映射配置文件

1.文件结构

2.映射配置文件标签详解

3.SQL语句中参数的获取

(1)获取方式

(2)参数类型

4.各种SQL操作

5.处理表字段和实体类属性名不一致的情况

6.多对一映射关系的处理

7.一对多映射关系的处理

8.分布查询的优点

9.动态SQL

四.核心配置文件

1.文件结构

2.核心配置文件详解

(1)标签顺序

(2)标签详解

五.相关API

1.Resources

2.SqlSessionFactoryBuilder

3.SqlSessionFactory

4.SqlSession

5.最佳实践

六.缓存

1.一级缓存

2.二级缓存

3.缓存的查询顺序


1.简介

2.maven构建

1.Mapper接口

MyBatis中的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,我们不需要提供实现类。

2.ORM思想

1.文件结构

2.映射配置文件标签详解

  • 多个字面量类型的参数

    • 若mapper接口中的方法参数为多个时,MyBatis会自动将这些参数放在一个map集合中,此时参数名不能是随意的名称

    • 这个map集合存放参数的形式是arg0,arg1...为map中的键,参数值为map中的值;还有param1,param2...为map中的键,参数值为map值的值

    • arg和param是同时存在于同一个map中的,在SQL语句获取参数时只需指定这些键的名称即可

    • 获取方式

      <select id="checkLogin" resultType="User">    select * from t_user where username = #{arg0} and password = #{arg1}select><select id="checkLogin" resultType="User">        select * from t_user where username = #{param1} and password = #{param2}select>
    • 如果使用${}的方式记得加引号

  • map集合类型的参数

    • 为了在SQL语句中指定一些有意义的参数名,我们可以自己提供一个map集合,自定义一些键的名称即可

    • 通过自定义键的名称,我们在SQL语句里就可以使用自定义的参数名了

    • 比如,这个自定义的map集合可以是{("username","参数值"),("password","参数值")}

    • 获取方式

      <select id="checkLoginByMap" resultType="User">    select * from t_user where username = #{username} and password = #{password}select>
    • 如果使用${}的方式记得加引号

  • 使用@Param注解标识的参数

    • 如果每次使用多个参数时都要自定义map集合就太麻烦了,所以可以通过使用@Param注解在映射方法的形参中指定好参数名

    • 比如,这个映射方法可以是

      User getUserByParam(@Param("username") String username,@Param("password") String password);
    • 获取方式

      <select id="checkLoginByParam" resultType="User">    select * from t_user where username = #{username} and password = #{password}select>
    • 使用这种注解就可以方便获取参数了,如果使用${}的方式记得加引号

  • 实体类型的参数

    • 如果映射方法的形参是一个实体类型时,可以通过访问实体类对象中的属性名获取属性值

    • 比如,这个实体类可以是

      public class User {    private Integer id;    private String username;    private String password;    private Integer age;    private String gender;    private String email;    //省略有参、无参构造方法以及toString()方法    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    public String getGender() {        return gender;    }    public void setGender(String gender) {        this.gender = gender;    }    public String getEmail() {        return email;    }    public void setEmail(String email) {        this.email = email;    }}
    • 获取方式

      <insert id="insertUser">    insert into t_user value(null,#{username},#{password},#{age},#{gender},#{email})insert>
    • 如果使用${}的方式记得加引号

  • 总结

    • 上面所说的五种参数类型实际上可以分成两种类型,一种是使用@Param注解一种是使用实体类

    • 就是说不论单个参数或者多个参数,都用注解的方式,如果是实体类那就用实体类属性的方式

  • 4.各种SQL操作

    5.处理表字段和实体类属性名不一致的情况

    6.多对一映射关系的处理

    7.一对多映射关系的处理

    8.分布查询的优点

    9.动态SQL

    1.文件结构

    2.核心配置文件详解

    (1)标签顺序

    (2)标签详解

    1.Resources

    2.SqlSessionFactoryBuilder

    3.SqlSessionFactory

    4.SqlSession

    5.最佳实践

    1.一级缓存

    2.二级缓存

    3.缓存的查询顺序

    来源地址:https://blog.csdn.net/m0_63722685/article/details/128195433

    阅读原文内容投诉

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    软考中级精品资料免费领

    • 历年真题答案解析
    • 备考技巧名师总结
    • 高频考点精准押题
    • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

      难度     813人已做
      查看
    • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

      难度     354人已做
      查看
    • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

      难度     318人已做
      查看
    • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

      难度     435人已做
      查看
    • 2024年上半年系统架构设计师考试综合知识真题

      难度     224人已做
      查看

    相关文章

    发现更多好内容

    猜你喜欢

    AI推送时光机
    位置:首页-资讯-后端开发
    咦!没有更多了?去看看其它编程学习网 内容吧
    首页课程
    资料下载
    问答资讯