MyBatis
1|0MyBatis
- 什么是MyBatis:是一款优秀的持久层框架,用于简化JDBC开发
1|1持久层
- 负责将数据到保存到数据库的那一层代码
- JavaEE三层架构:表现层,业务层,持久层
1|2框架
- 框架就是一个半成品软件,是一套可重用,通用的,软件基础代码模型
- 在框架的基础之上构建软件编写更加高效,规范,通用,可扩展
1|3初次使用Mybatis
- 步骤1.创建user表,添加数据
略
- 步骤2:创建模块,导入坐标,
配置pom文件,添加依赖
- 步骤三:编写MyBits核心配置文件-->替换连接信息,解决硬编码问题
MyBits-config中的配置:
这里需要根据sql的映射文件来加入
- 步骤四:编写sql映射文件-->统一管理sql语句,解决硬编码问题
- 步骤五:编码
至此完成一个Demo项目 测试结果如下所示:
1|4解决sql映射文件的警告提示
1|5用Mapper代理开发
-
- 定义一个与sql映射文件同名的Mapper接口,并且将Mapper接口和Sql映射文件放着在同一目录下
- 设置SQL映射文件的namespace属性为Mapper接口全限定名
- 在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致
同时记得修改MyBatis-config里面的Mapper路径:
编码:
1|6MyBatisX插件
可以在Mapper配置文件和对应接口之间来回跳动
1|7案例
- 用MaBatis核心配置文件完成增删改查
- 首先完成brand实体类,以及brandmapper和对应的配置文件
这里需要注意 因为数据库的字段名和brand实体类中的变量名不同 不能自动封装 ,需要使用 resultMap标签来进行映射 具体看上面的代码
- 编写测试类文件:
测试结果如下所示:
1|8参数占位符和参数类型
-
参数占位符:
-
-
2|0{}:会将其调换为?,为了防止sql注入
- ${}:拼sql,会存在SQL注入的问题
- 使用时机:参数传递的时候用1,表名或列名不固定的时候用2
-
-
特殊字符类型的处理
-
- 转义字符:例如: <可以写为 < 使用与特殊字符比较少的时候
- CDATA区:
2|1sql语句设置多个参数的三个方法:
- 散装函数:需要@Param(”sql中的参数占位符名称“)
- 实体类封装参数:只需保证sql中的参数名和实体类属性名对应上,即可设置成功
- map集合 :只需保证sql中的参数名和map集合的键的名称对应上,即可设置成功
2|2动态sql
if标签:
- test值为判断语句
choose when标签
- 相当于 swhich和case
foreach标签
- 相当于增强for
__EOF__

本文作者:小邱
本文链接:https://www.cnblogs.com/xiaoqiuStu/p/16125521.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/xiaoqiuStu/p/16125521.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了