mybatis学习思维导图——附b站视频网址和百度网盘(来自动力节点)

三层架构

mybatis框架

mybatis实战

框架的使用方式

mybatis框架的使用步骤:

mybatis的传参数

#和$区别

mybatis封装sql语句的执行结果

表的列名和java对象的属性名称不一样

模糊查询Like使用

动态sql

mybatis主配置文件的配置内容

PageHelp

动力节点资源百度网盘

三层架构

1.视图层,界面层
接收用户的请求,调用业务层处理请求
springmvc
2.业务逻辑层
计算数据,处理请求,对应的service包
spring
3.持久层
操作数据的,对数据执行增删改查
mybatis

mybatis框架

主要功能:执行数据库的操作,完成对数据的增删改查;看做是jdbc的升级版本
特色
1.执行数据库的增删改查,可以只关心sql语句如何编写
1.sql mapps: sql映射,mybatis可以把表中的数据转为一个java对象。 把表和java对象对应起来

框架的使用方式

1.通过sql的id,使用SqlSession对象,执行sql语句
2.使用自定义的dao对象。
3.使用mybatis 的代理对象
使用SqlSession.getMapper()获取一个dao对象,通过这个dao对象执行方法就能访问数据库了
核心是mybatis创建的dao,也是调用SqlSession的方法执行sql语句

mybatis框架的使用步骤:

1.实体类:使用实体类表示表中的数据:表中的一行数据就相当于是一个实体类对象
2.定义dao接口:定义方法,方法表示要执行的数据操作, 方法名称应该和mapper文件中的id一样
3.定义mapper文件,是一个xml文件,编写sql语句
4.定义mybatis主配置文件:1)定义数据源DataSource;2)指定mapper文件的位置
5.mybatis执行sql语句的核心对象:SqlSession, 使用SqlSession的方法执行sql语句, 使用SqlSessionFactory的openSession()方法获取SqlSession对象

mybatis的传参数

从java程序把数据传入到mapper的文件的sql语句
1.dao方法有一个简单类型的参数,在mapper文件中,使用#{任意字符串}
2.使用@Param注解给参数命名, 在mapper文件,使用#{自定义的名称}
3.使用java对象传参, 在mapper文件中, 使用#{java对象属性名称}
4.使用参数的位置, 在mapper文件,#{arg位置值,从0开始}
5.使用map, #{map的key}

#和$区别

1.#是占位符,使用?做占位符合,mybatis内部使用PreparedStatement对象执行sql语句,效率高
2.#表示列的值, 一般是放在等号的右侧使用
3.$是字符串代理连接, 把sql语句和 ${}位置的值连接在一起
4.$所表示的内容是原样替换的
5.$使用的sql语句,mybatis使用的是Statement对象执行sql的
6.$一般是替换表名,列名, 部分sql语句的

mybatis封装sql语句的执行结果

mybatis执行sql语句后,把ResultSet转为java对象,mybatis负责创建对象,给属性赋值
1.resultType: 在 标签中使用的,把查询的结果转为java对象的类型
1.java类型的全限定名称
2.别名
2.resultMap: 自定义列名和属性名称的对应关系
1.先使用

表的列名和java对象的属性名称不一样

1.使用resultMap指定列名和属性名称的对应
2.使用resultType通过别名的方式,指定别名和属性名称对应一致

模糊查询Like使用

1.在java代码中指定模糊查询的内容,例如 “%李%”, 然后把这个值传入到sql语句中
2.在sql语句中拼接like的内容, 方式 where name like “%”空格#{name}空格”%”

动态sql

通过在mapper中,使用标签,通过条件生成不同的sql语句,主要是控制where 条件部分

mybatis主配置文件的配置内容

1.settings中可以配置日志
2.配置别名

PageHelp

是一个插件,给sql语句增加分页功能的。 在我们的sql语句之后,通过插件加入 limit这样的语句
使用步骤:
1.加入依赖
2.在mybatis主配置文件中,加入plugin:

3.在你的查询方法之前加入 PageHelper.startPage(第一页,每页几行数据)

动力节点资源百度网盘

Original: https://www.cnblogs.com/chaos2022/p/16171240.html
Author: cxc超小超
Title: mybatis学习思维导图——附b站视频网址和百度网盘(来自动力节点)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/712242/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • NAS私人云盘

    https://cloudreve.org/ Cloudreve 可助你即刻构建出兼备自用或公用的网盘服务,通过多种存储策略的支持、虚拟文件系统等特性实现灵活的文件管理体验。 部署…

    技术杂谈 2023年5月31日
    0101
  • 分布式ID生成方案

    分布式ID策略 为什么要用分布式ID? 在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个 MySQL 主从同步读写分离也能对付。 但随着数据日渐增长,主从…

    技术杂谈 2023年6月21日
    0104
  • Xperf Analysis Basics(转)

    FQ不易,转载 I started writing a description of how to examine CPU Sampling data in xperf and r…

    技术杂谈 2023年5月31日
    083
  • umeditor实现ctrl+v粘贴word图片并上传

    这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用 后台(服务端)java服务代码:(上传至ROOT/lqxc…

    技术杂谈 2023年5月31日
    0103
  • Kubernetes 基础概念整理

    K8S基础组件 整个集群的控制中枢 集群控制中枢,各个模块之间的信息交互都需要经过Kube-APIServer,同时也是集群管理,资源配置,集群安全机制的入口 集群的状态管理器,保…

    技术杂谈 2023年7月11日
    065
  • docker学习:docker-centos安装

    docker search centos docker pull centos docker images docker run -itd –privileged=tr…

    技术杂谈 2023年7月10日
    074
  • 小熊飞桨练习册-05水果数据集

    文件说明 文件 说明 train.py 训练程序 test.py 测试程序 test-gtk.py 测试程序 GTK 界面 report.py 报表程序 onekey.sh 一键获…

    技术杂谈 2023年7月23日
    0107
  • 通过rinetd实现端口转发来访问内网的服务

    通过rinetd实现端口转发来访问内网的服务 通过外网来访问内网的服务 需要有一台能够外网访问的机器做端口映射,通过数据包转发来实现外部访问阿里云的内网服务 做端口映射的方案有很多…

    技术杂谈 2023年5月31日
    065
  • Java注解与原理分析

    一、注解基础 二、注解原理 三、常用注解 1、JDK注解 2、Lombok注解 四、自定义注解 1、同步控制 2、类型引擎 五、参考源码 使用的太多,被忽略的理所当然; 一、注解基…

    技术杂谈 2023年7月24日
    078
  • 【赵渝强老师】MongoDB中的索引(上)

    索引是提高查询查询效率最有效的手段。索引是一种特殊的数据结构,索引以易于遍历的形式存储了数据的部分内容(如:一个特定的字段或一组字段值),索引会按一定规则对存储值进行排序,而且索引…

    技术杂谈 2023年7月24日
    070
  • Android中的Coroutine协程原理详解

    前言 协程是一个并发方案。也是一种思想。 传统意义上的协程是单线程的,面对io密集型任务他的内存消耗更少,进而效率高。但是面对计算密集型的任务不如多线程并行运算效率高。 不同的语言…

    技术杂谈 2023年7月10日
    085
  • tcpip详解-读书笔记

    TCP/IP详解 卷一 第一版读书笔记 第一章: 应用层关心是应用程序的细节,而不是数据在网络中对的传输活动,下三层对应用程序一无所知,但他们要处理所有的通信细节。 七层代理可以根…

    技术杂谈 2023年7月11日
    0125
  • IOS浏览器 ul li a字体无效问题_iPhone的Safari的奇怪结果:OL LI A或UL LI A

    IOS浏览器 ul li 字体无效问题_iPhone的Safari的奇怪结果:OL LI A或UL LI A 说明: 在 Safari浏览器中,ul li a标签关联使用时候字体大…

    技术杂谈 2023年6月1日
    092
  • styleBinding样式存放位置

    styleBinding样式针对父层 放label里则只对label起作用 <ui> <view> <container> <subVie…

    技术杂谈 2023年6月1日
    0104
  • H3C 无线交换机和FIT AP的典型连接

    posted @2019-09-23 20:56 樊伟胜 阅读(1010 ) 评论() 编辑 Original: https://www.cnblogs.com/fanweishe…

    技术杂谈 2023年5月30日
    0109
  • ES5 数据属性描述符和存取描述符

    一、数据属性描述符 对象是一个属性集合,对象的基本特征是属性名(name)和属性值(value)。ES5 增加了属性描述符,可以更细腻的控制属性的不同操作。属性描述符有 confi…

    技术杂谈 2023年6月1日
    080
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球