通用Mapper怎么开接口扫描

news2024/12/26 20:51:42

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO

联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬

学习必须往深处挖,挖的越深,基础越扎实!

阶段1、深入多线程

阶段2、深入多线程设计模式

阶段3、深入juc源码解析

阶段4、深入jdk其余源码解析

阶段5、深入jvm源码解析

  • 通用Mapper怎么开启接口扫描?
/**
 * 注意,这里的@MapperScan是tk包下的,而不是org
 * @author qiyu
 */
@MapperScan("com.bravo.happy.dao")
@SpringBootApplication
public class HappyDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(HappyDemoApplication.class, args);
    }

}

注意,这只是开启了接口扫描,和mapper.xml无关,要想扫描XML要另外配置。

  • 引入了通用Mapper还能写XML吗?如果能,怎么做?
  • SpringBoot环境下,MyBatis怎么开启SQL日志打印?
  • 通用Mapper的接口方法是支持自动驼峰映射的,但我们手写的SQL如何开启驼峰映射?
# 打印SQL
logging:
  level:
    com.bravo.happy.dao: debug

mybatis:
  # XML扫描路径
  mapper-locations: classpath:mapper/**/*.xml
  # 通用Mapper的方法会自动转换驼峰,但手写的SQL需要开启才能转换
  configuration:
    map-underscore-to-camel-case: on

  • 通用Mapper能控制要查询的列吗?
/**
 * SELECT id , name FROM tk_user WHERE ( ( age = ? ) )
 *
 * 虽然通用Mapper也能只查询指定列,但是复用性不好,每次都要在service层重新写一遍
 */
@Test
public void testSelectByExample() {
    Example example = new Example(TkUserPojo.class);
    // 指定查询列只查询id和name,指定条件列为age
    example.selectProperties("id", "name").createCriteria().andEqualTo("age", 16);
    userMapper.selectByExample(example);
}

通用Mapper可以指定查询的列,但只能通过Example对象,但其他诸如selectByPrimaryKey()方法是全列查询,因为mapper对象无法直接设置selectProperties()。

  • 通用Mapper默认的是逻辑删除还是物理删除?怎么配置逻辑删除?

默认是物理删除,可以给业务含义为“删除”的字段加@LogicDelete注解实现逻辑删除。但是很遗憾,@LogicDelete对TkBaseMapper中的deleteByIdList()不起作用,它还是物理删除:

  • 你喜欢用xxx还是xxxSelective()?比如insert()和insertSelective()选哪个?为什么?

建议使用带Selective的方法,因为它不是全量操作,可以避免修改其他无关字段,不影响数据库默认值。

  • 通用Mapper支持批量操作吗?

默认提供了几个接口,可以实现批量查询(IN)、批量插入(全字段,如果不设置值则插入null)、批量物理删除,没提供批量更新。建议实际开发时手写批量操作的SQL,注意避免全表操作!

  • 使用Example需要注意什么问题?

注意对 条件全空 or 集合size为0 的判断。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1359877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

申请CSDN博客专家的历程

今天是2024年第一周的周五下午13:55,我怀着非常非常激动的心情写下这篇博客记录这难忘的时刻:我的博客专家认证通过了!现在唯一想说的就是非常感谢CSDN平台,我会继续努力,把最好的分享给大家。 与CSDN的缘分…

全面 正进制数转化 函数模板(直接调用)

本题链接:用户登录 题目: 样例: 输入 2 2 10 10101 11 2 1793A5068 输出 21 10101111001010100111010101011 思路: 对于进制数之间的转化,我们可以通过 以 十进制作为桥梁 进行进制数之间的转化 比如&#xff1…

【项目实战】Cadence工具的使用1

需要 Candece Jasper文档的朋友可以和我联系@tommi.wei@qq.com Vmanager 自动化仿真管理工具 对于这款工具,笔者用到最多的地方就是写testplan! 没错,根据设计文档(Target Specication),细分feature list. 对于验证工程师要做的事情,就是验证设计功能的完备性,需要逐一…

Django 7 实现Web便签

一、效果图 二、会用到的知识 目录结构与URL路由注册request与response对象模板基础与模板继承ORM查询后台管理 三、实现步骤 1. terminal 输入 django-admin startapp the_10回车 2. 注册, 在 tutorial子文件夹settings.py INSTALLED_APPS 中括号添加 "the…

基于spring boot的中小型仓库物流管理系统(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

流行的Jmeter+Ant+Jenkins接口自动化测试框架在网络上走红

大致思路:Jmeter可以做接口测试,也能做压力测试,而且是开源软件;Ant是基于Java的构建工具,完成脚本执行并收集结果生成报告,可以跨平台,Jenkins是持续集成工具。将这三者结合起来可以搭建一套We…

Linkage Mapper 工具参数详解——Pinchpoint Mapper

【小白一学就会无需其他教程】此文档用于解析使用Linkage Mapper 各输入输出参数详情以及可能的影响,并介绍了如何解释模型输出结果和输出参数,适合刚入手的人。篇幅很长很啰嗦,是因为每个参数都解释的万分细致。 从以下链接中获取内容&…

PCIe 6.0生态业内进展分析总结

上一篇,我们针对PCIe 6.0的功能更新与实现挑战做了简单的分析与总结。更多详细内容可以参考: 扩展阅读:浅析PCIe 6.0功能更新与实现的挑战 那么,PCIe 6.0已经发布了一段时间了,业内硬件支持PCIe 6.0目前有哪些进展呢…

接口开发—hrun语法和用例规范

学习目标: 1、常见的抓包方法 2、如何提取和使用token 3、用例规范 4、辅助函数 具体内容: 1、常见的抓包方法 做接口测试前,肯定需要使用抓包工具去请求接口,然后才开始正常写接口用例。 常用的2种抓包方法有&#xff1a…

快递物流怎么寄最便宜?你一定要知道的5个方法 !

家人们,临近年关,大家的钱包是不是鼓鼓的了,难免的亲戚朋友之间会相互寄送一些东西,所以最近因为需要经常寄快递物流,小编所以特地整理了5个我们平时个人寄快递便宜的方法攻略,推荐第五个,实用干…

1.大数据概述

目录 概述hadoophadoop 模块hadoop 发行版apache社区版本CDP(CDHHDP)其它云产商框架选择 hadoop 安装 结束 概述 先了解几个常用的网站 apache 官网hadoop 官网hadoop githubhttps://github.com/apache/xxx [https://github.com/apache/spark (example)] hadoop hadoop 模块…

【计算机算法设计与分析】棋盘覆盖问题(C++_分治法)

文章目录 题目描述测试样例算法原理算法实现参考资料 题目描述 在一个 2 k 2 k 2^k \times 2^k 2k2k个方格组成的棋盘中,若恰有一个方格与其他方格不同,则称该方格为一个特殊方格,且称该棋盘为一个特殊棋盘。显然,特殊方格在棋…

论文阅读: Semantics-guided Triplet Loss

ICCV 2021 Abstract 一个度量学习方法,通过浏览语义引导的局部集合去优化内在深度表示。一个新颖的特征融合模块能有效利用跨模态特异质特征。 Senantics-guided Triplet Loss 基本假设: 在场景语义分割图像中,目标内部相邻像素拥有同样…

书生·浦语大模型全链路开源体系(陈恺|上海人工智能实验室 青年科学家)-听课笔记

大模型重要性 大模型确实已成为发展通用人工智能(AGI)的重要途径。它们通过整合和处理大量数据,学习语言、图像、声音等多种模式的表示,以此来模拟人类的学习和思维方式。通过不断地学习和优化,这些模型能够在各种任…

基于SSM的人事档案管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Fiddler抓取https原理?

首先fiddler截获客户端浏览器发送给服务器的https请求, 此时还未建立握手。 第一步, fiddler向服务器发送请求进行握手, 获取到服务器的CA证书, 用根证书公钥进行解密, 验证服务器数据签名, 获取到服务器C…

各类Java对象

相关概念的混淆 在某一时间段,人们对某种编程困境感到烦恼,不少人脑中产生了一种新开发方式的概念 一些代表人物提出了他们的意见,而同一时期可能又不少人对同一问题,用自己的不同语言提出不同概念 如果又官方组织维护概念&#x…

CSS新增文本描边-text-stroke属性

-webkit-text-stroke属性 概念:-webkit-text-stroke属性为文本添加描边效果。所谓的描边效果,指的是给文字添加边框 语法: -webkit-text-stroke:width color;Chrome和Firefox这两个浏览器都只能识别带有-webkit前缀的text-stroke属性 -web…

科锐16位汇编学习笔记 02 分段,机器码和寻址

分段 问题1 8086是16位cpu,最多可以访问(寻址)多大内存? - 运算器一次最多处理16位的数据。 - 地址寄存器的最大宽度为16位。 - 访问的最大内存为:216 64K 即 0000 - FF…

UOS下通过SSH隧道访问云端内网windows桌面

1 用户痛点 随着时代的发展,众多企业的服务器慢慢走向云端。大量云端服务器节省企业成本的同时,也带来了安全性问题。例如:管理云端的服务器,特别是windows桌面服务器,往往需要给这个服务器分配一个公网IP地址&#x…