首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Note_01】通用 mapper

【Note_01】通用 mapper

作者头像
用户8250147
发布于 2021-02-04 06:47:05
发布于 2021-02-04 06:47:05
50100
代码可运行
举报
文章被收录于专栏:黑马黑马
运行总次数:0
代码可运行

一、通用 mapper 简介

最初我们手写 Mybatis 的 mapper.xml 文件,然后使用 Mybatis-generator 逆向工程生成 mapper.xml 文件,再发展到使用通用 mapper,支持自动生成 EntityMapper、mapper.xml 文件。

二、入门 Demo

1.引入依赖
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper</artifactId>
    <version>最新版本</version>
</dependency>
2.配置 Mybatis.xml 文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- 与 Mybatis 配置的区别仅仅是将 class="org.xxx" 改为了  class="tk.xxx" -->
<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="扫描包名"/>
    <!-- 其他配置 -->
</bean>
3.实体类配置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Entity implements Serializable {
    @Id
    private Long id;
    private String name;

    //setter 和 getter 方法
    //toString()
}
4.接口配置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public interface EntityMapper extends Mapper<Entity> {

}
5.使用通用 mapper
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MapperTest {
    @Test
    public void testEntityMapper() {
        //获取 spring 上下文对象
        ApplicationContext context =  new ClassPathXmlApplicationContext("Mybatis.xml");
        //获取 EntityMapper
        EntityMapper entityMapper = context.getBean(EntityMapper.class);
        //查询所有数据
        List<Entity> entitys = entityMapper.selectAll();
        //断言 
        Assert.assertEquals(2, entitys.size());
    }
}

三、常用注解

名称

作用范围

含义

注释

@Table

实体类

建立实体类与数据库表之间的对应关系

默认类名首字母小写

@Column

实体类属性

建立实体类字段与数据库字段的对应关系

实体类:驼峰;数据库:_分隔

@Id

实体类属性

标识主键

未标识主键则认为该实体类为全字段联合主键

@GeneratedValue

实体类属性

获取 insert 自增的主键

属性:strategy = GenerationType.IDENTITY

@Transient

实体类属性

标识实体类与数据库不对应的字段

非数据库表中字段

四、CRUD

4.1 select(Entity entity)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* 用于根据实体类查询多条数据
* mapper自动生成的SQL
	entity = {id = null,username="admin",password="123456"}
	⇩ 使用非空成员变量生成 where 条件 
	select id,uaername,password form user where username = ? and passworld = ?

* 补充 
	⇨ selectOne(Entity entity) 查询一条数据
	⇨ selectByPrimaryKey(id)根据主键查询
4.2 insert(Entity entity)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* 按全属性插入数据 
* mapper自动生成的SQL
	entity = {username="admin",password="null",age=null}
	⇩ 属性为空的插入 null
	insert into user(username,passsword,age) values(?,?,?* 补充 ⇨ insertSelective(Entity entity)属性为空的使用默认值
4.3 updateByPrimaryKey(Entity entity)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* 根据主键修改
* mapper自动生成SQL
	⇩ 属性为空的更新为 null
	update user set username = ?, passwod= ?, age= ? where id = ?
	
* 补充 ⇨ updateByPrimaryKeySelective(Entity entity)属性为空的不更新【推荐】
4.4 delete(Entity entity)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* 根据实体类删除
* mapper自动生成SQL
	⇩ entity 为空则删除所有
	delete from user where username = ? and password = ? and age = ?
	
* 补充 ⇨ deleteByPrimaryKey(id) 根据主键删除
4.5 根据条件查询
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//1. 初始化实例对象
Example example = new Example(User.class);
//2. 获取查询条件对象
Criteria criteria = example.createCriteria();
	
//3. 设置查询条件
//3.1 区间之间
criteria.andBetween("age", 15, 30);
//3.2 模糊查询
criteria.andLike("username", "%ad%");
		
//4. 添加或者条件
Criteria criteria2 = example.createCriteria();
//4.1 完全匹配
criteria2.andEqualTo("password", "123456");
example.or(criteria2);
	
//5. 排序
example.setOrderByClause("age desc,id asc");
	
//6. 查询
userMapper.selectByExample(example);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
FFmpeg完全指南:跨平台音视频处理利器
FFmpeg 是一个完整的跨平台音视频解决方案,用于记录、转换和流式处理音视频。它是目前最强大的音视频处理开源软件之一,被广泛应用于视频网站、播放器、编码器等多种场景中。
CoderJia
2024/12/05
7.4K0
FFmpeg完全指南:跨平台音视频处理利器
FFmpeg从入门到精通(一)
FFmpeg既是一种音视频编解码工具,也是一组音视频解码开发套件。作为编解码开发套件,它为开发者提供了丰富的音视频处理的调用接口。
全栈程序员站长
2022/09/13
1.2K0
FFmpeg简易播放器的实现-音视频同步
前面四次实验,从最简入手,循序渐进,研究播放器的实现过程。第四次实验,虽然音频和视频都能播放出来,但是声音和图像无法同步,而没有音视频同步的播放器只是属于概念性质的播放器,无法实际使用。本次实验将实现音频和视频的同步,这样,一个能够实际使用的简易播放器才算初具雏形,在这个基础上,后续可再进行完善和优化。
叶余
2019/04/02
3.3K0
FFmpeg简易播放器的实现-音视频同步
FFmpeg从入门到精通-云享读书会
FFmpeg是一款开源软件,用于生成处理多媒体数据的各类库和程序。FFmpeg可以转码、处理视频和图片(调整视频、图片大小,去噪等)、打包、传输及播放视频。作为最受欢迎的视频和图像处理软件,它被来自各行各业的不同公司所广泛使用。
DS小龙哥
2022/10/06
5.6K0
FFmpeg从入门到精通-云享读书会
ffmpeg常用命令
FFmpeg是一个强大的开源多媒体处理工具,它可以用于录制、转换以及流化音频和视频。它是一个跨平台的项目,可以在多种操作系统上运行,包括Windows、Mac OS和Linux。这个工具可以执行各种各样的音视频处理任务,包括但不限于:
Jensen_97
2024/04/18
6640
FFmpeg使用手册 - FFmpeg 的基本组成
1 FFmpeg 的基本组成 FFmpeg 的基本组成包含Format、Codec、Filter、Devices、Utils等,结构如图:
用户3765803
2019/03/05
3K0
FFmpeg使用手册 - FFmpeg 的基本组成
FFmpeg常用命令讲解及实战二
FFmpeg 有三个作用不同的工具软件 ffmpeg.exe,ffplay.exe,ffprobe.exe,本文主要讲讲这些工具软件的使用方法。
Gnep@97
2023/11/24
6640
FFmpeg常用命令讲解及实战二
音视频八股文(3)--ffmpeg常见命令(2)
* 播放本地 MP4 视频文件 `test.mp4` 的命令,从第 2 秒位置开始播放,播放时长为 10 秒,并且在窗口标题中显示 "test time":
福大大架构师每日一题
2023/04/22
2.2K0
FFmpeg学习笔记汇总
FFmpeg既是一款音视频编解码工具,同时也是一组音视频编解码开发套件,作为编解码开发套件,它为开发者提供了丰富的音视频处理的调用接口。 FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率转换等;FFmpeg框架提供了多种丰富的插件模块,包含封装与解封装的插件、编码与解码的插件等。
天天Lotay
2022/11/14
1.4K0
FFmpeg学习笔记汇总
“师兄”带你看FFmpeg开发中的坑起坑落
谢谢大家,谢谢主持人,因为今天时间有限,所以就简单的介绍一些套路。先做下自我介绍,我是一个音视频流媒体的爱好者,目前和几个朋友一起成立了公司,专门做音视频编解码处理,当然不是做编码器,是专门做在线处理。此外我是FFmpeg的维护者之一,再就是以前玩过嵌入式处理,是从44B0开始的;也做过存储,参与开发过广电的大规模存储;在中科创达专门做手机时做过设备驱动开发;也做过一些流媒体,当时主要基于高通平台;之后去蓝讯之后开始做流媒体系统设计,当时担任流媒体架构师,主要是做直播部分。
LiveVideoStack
2021/09/02
1.5K0
“师兄”带你看FFmpeg开发中的坑起坑落
FFmpeg 使用教程
默认的编译会生成4个可执行文件和8个静态库。可执行文件包括用于转码、推流、Dump媒体文件的ffmpeg、用于播放媒体文件的ffplay、
派大星在吗
2021/12/06
1.6K0
音视频八股文(2)--ffmpeg常见命令(1)
2.将下载得到的包中的执行文件ffmpeg.exe、ffplay.exe和ffprobe.exe拷贝到C:\Windows目录下。这样,在命令行窗口中便可以直接访问这些可执行文件。
福大大架构师每日一题
2023/06/08
1.3K0
音视频八股文(2)--ffmpeg常见命令(1)
FFmpeg 工具:音视频开发都用它,快@你兄弟来看丨音视频工具
(本文基本逻辑:ffmpeg 常用命令介绍 → ffplay 常用命令介绍 → ffprobe 常用命令介绍)
关键帧
2022/06/13
2.5K0
FFmpeg 工具:音视频开发都用它,快@你兄弟来看丨音视频工具
1.ffmpeg、ffplay、ffprobe命令使用
ffmpeg命令- 用于转码的应用程序, 也可以从url/现场音频/视频源抓取输入源
诺谦
2020/05/18
2.7K0
1.ffmpeg、ffplay、ffprobe命令使用
FFmpeg命令也就这几类了吧
FFmpeg作为多媒体处理领域的强大开源工具,提供了丰富的音视频处理命令,广泛用于视频转换、格式处理、流媒体传输等。FFmpeg操作基于命令行,灵活而高效,涵盖多种应用场景。本文将为您提供最全的FFmpeg命令讲解,从基础命令结构到各类详细应用示例,帮助您轻松掌握FFmpeg的实用技巧。
程序员的园
2024/11/14
4300
FFmpeg命令也就这几类了吧
FFmpeg介绍及使用
FFmpeg是音视频领域很有名的一个库, 这里从两方面介绍, 一方面根据FFMPEG的命令行工具介绍, 介绍这些命令行工具的使用方法, 满足一般用户要求. 还有一方面从组件/库的划分来介绍, 介绍FFMPEG是有哪些组件和库组成, 每一个库的作用, 便于后续的自定义开发.
望天
2019/09/26
4.4K0
FFmpeg介绍及使用
【C++】FFmpeg:音视频库介绍与使用示例
FFmpeg是一款开源的音视频库,提供了处理音视频文件、转码、解码、编码、播放等功能。它是一个完整的跨平台解决方案,支持多种音视频格式,并提供多种API和工具来处理音视频数据。
DevFrank
2024/07/24
7790
《FFmpeg从入门到精通》读书笔记(二)[通俗易懂]
MP4文件由许多个Box与FullBox组成;每个Box由Header和Data两部分组成。 FullBox是Box的扩展,其在Box结构的基础上,在Header中增加8位version标志和24为flags标志; Header包含了整个Box的长度的大小(size)和类型(type):size=0,代表这个Box是文件的最后一个Box; size=1,说明Box的长度需要更多的位来描述,在后面会定义一个64位的largesize用来描述Box的长度; type=uuid,说明这个Box中的数据是用户自定义扩展类型 Data为Box的实际数据,可以是纯数据,也可以是更多的子Box; 当一个Box中Data是一系列的子Box时。这个Box又可以成为 Container Box
全栈程序员站长
2022/09/13
3.4K0
FFMPEG指令
FFmpeg是一个用于音视频处理的自由软件,被广泛用于音视频开发。FFmpeg功能强大,本文主要介绍如何使用FFmpeg命令行工具进行简单的视频处理。 安装FFmpeg可以在官网下载各平台软件包或者静态编译版本,也可以使用包管理工具安装。 基本概念 获得音视频信息 使用ffmpeg进行视频处理 选项 - -y / -n - -codec(-c) - -ss - -t - -to - -f - -filter / -filter_complex - -vframes - -vn - -r - -s - -a
生活创客
2018/03/26
6.1K0
FFmpeg深入学习
上文主要讲解了 FFmpeg 相关知识,以及在 Windows 下编译 FFmpeg 源码,本文继续对 FFmpeg 进行更深入的介绍。
Gnep@97
2023/09/15
8540
FFmpeg深入学习
相关推荐
FFmpeg完全指南:跨平台音视频处理利器
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 一、通用 mapper 简介
  • 二、入门 Demo
    • 1.引入依赖
    • 2.配置 Mybatis.xml 文件
    • 3.实体类配置
    • 4.接口配置
    • 5.使用通用 mapper
  • 三、常用注解
  • 四、CRUD
    • 4.1 select(Entity entity)
    • 4.2 insert(Entity entity)
    • 4.3 updateByPrimaryKey(Entity entity)
    • 4.4 delete(Entity entity)
    • 4.5 根据条件查询
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档