mybatis学习思维导图——附b站视频网址和百度网盘(来自动力节点)
目录
介绍
三层架构
1.视图层,界面层
接收用户的请求,调用业务层处理请求
springmvc
2.业务逻辑层
计算数据,处理请求,对应的service包
spring
3.持久层
操作数据的,对数据执行增删改查
mybatis
mybatis框架
主要功能:执行数据库的操作,完成对数据的增删改查;看做是jdbc的升级版本
特色
1.执行数据库的增删改查,可以只关心sql语句如何编写
1.sql mapps: sql映射,mybatis可以把表中的数据转为一个java对象。 把表和java对象对应起来
mybatis实战
框架的使用方式
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.{}位置的值连接在一起
4.使用的sql语句,mybatis使用的是Statement对象执行sql的
6.$一般是替换表名,列名, 部分sql语句的
mybatis封装sql语句的执行结果
mybatis执行sql语句后,把ResultSet转为java对象,mybatis负责创建对象,给属性赋值
1.resultType: 在<select>标签中使用的,把查询的结果转为java对象的类型
1.java类型的全限定名称
2.别名
2.resultMap: 自定义列名和属性名称的对应关系
1.先使用<resultMap> 定义列和属性对应关系
2.在<select resultMap="定义好的名称">
表的列名和java对象的属性名称不一样
1.使用resultMap指定列名和属性名称的对应
2.使用resultType通过别名的方式,指定别名和属性名称对应一致
模糊查询Like使用
1.在java代码中指定模糊查询的内容,例如 "%李%", 然后把这个值传入到sql语句中
2.在sql语句中拼接like的内容, 方式 where name like "%"空格#{name}空格"%"
动态sql
通过在mapper中,使用标签,通过条件生成不同的sql语句,主要是控制where 条件部分
<if test="boolean条件">: 当条件为true,把sql语句加入到主sql中
<where> :where里面是if, 当if条件有一个满足,在主sql语句加入 where 关键字和条件
<foreach>
1.循环基本类型,例如List<Integer>
2.循环对象类型,例如List<Student>
mybatis主配置文件的配置内容
1.settings中可以配置日志
2.配置别名<typeAliases>
1.typeAlias : 一次只能给一个java类型配置别名
2.package : 把一个包中的所有类作为别名。 类名就是别名
3.dataSource:配置数据源
4.配置mapper文件的位置
1.使用<mapper resource="com/bjpowernode/dao/StudentDao.xml"/>
3.使用<package name="包名,例如com.bjpowernode.dao"/>
5.使用属性配置文件(.properties)
1.定义属性配置文件,在resources目录下创建 jdbc.properties
2.属性配置文件中,定义key=value
3.在mybatis主配置文件中, 使用<proper resource="类路径之下的jdbc.properties"/>
4.在需要使用值的地方,语法 ${key}
PageHelp
是一个插件,给sql语句增加分页功能的。 在我们的sql语句之后,通过插件加入 limit这样的语句
使用步骤:
1.加入依赖
2.在mybatis主配置文件中,加入plugin:
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor" />
</plugins>
3.在你的查询方法之前加入 PageHelper.startPage(第一页,每页几行数据)
动力节点资源百度网盘
链接:https://pan.baidu.com/s/1VLVVfXOppPBbOQLzmpgHDA
提取码:kpxo
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了