MyBatis知识点笔记

news2024/12/28 5:37:50

目录

mybatis mapper-locations的作用?

mybatis configuration log-impl 作用?

resultType和resultMap的区别?

 参数 useGeneratedKeys ,keyColumn,keyProperty作用和用法

取值方式#和$区别

动态标签有哪些

MyBatis常用注解有哪些

注解里直接用动态标签为什么报错

注解方式新增数据后如何回填主键ID值

同一个方法能否既用注解方式又用XML方式

mybatis mapper-locations的作用?

mapper接口与mapper接口对应的配置文件进行一个绑定 如果没有绑定会报错 无效的绑定语句 未

找到 配置扫描路径 

classpath:mapper/*.xml

classpath就是resources *是通配符所有的xml文件

mybatis configuration log-impl 作用?

打印mysql日志 使用

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

就可以将sql打印在控制台

resultType和resultMap的区别?

resultType只要数据库和实体类字段名一样就能查询到数据 但是如果字段名不一样 就会导致有些字段名为null 映射不上

resultMap可以解决数据库表的字段名和实体类属性名不一致的问题

 参数 useGeneratedKeys ,keyColumn,keyProperty作用和用法

在使用mybatis的时候 我们插入数据 我们希望返回主键id 以便后面使用 正常情况是不可能返回的

我们必须要告诉mybatis 并不是返回的是主键 而是将主键的值写入到我们配置的keyProperty

<!-- useGeneratedKeys 插入后返回主键 keyColumn指定数据库主键 
keyProperty指定在Java 实体类中对应的主键 -->
  <insert id="inertPojo" useGeneratedKeys="true" keyColumn="pojo_id" keyProperty="Pojo">
    <!-- 或者直接不显示的写key(主键) -->
    insert into tb_pojo(key, param1, param2, ...)
    values
    (null, #{param1}, #{param2}, ...)
  </insert>

取值方式#和$区别

#传入的参数在SQL中显示为字符串,$传入的参数在SqL中直接显示为传入的值.

#方式能够很大程度防止sql注入,$方式无法防止Sql注入;

动态标签有哪些

MyBatis提供了9种动态SQL标签:trim、where、set、foreach、if、choose、when、otherwise、

bind;

MyBatis常用注解有哪些

@Select 查询

@Insert 插入

@Update 修改

@Delete 删除

@Results和@Result 实体类和数据库字段名称不一样时 使用他们来隐射

@Options 添加属性useGeneratedKeys = truekeyProperty = "id"即可在数据添加后获取添加

数据的ID值。

@ResultMap 注解就一个作用,使用已经定义好的@Results或XML配置里已经写好的resultMap。

@One,用于一对一的关系映射

@Many,用于一对多的关系映射

@SelectKey 返回自增id

注解里直接用动态标签为什么报错

要加上script标签 成为脚本sql

注解方式新增数据后如何回填主键ID值

使用@Options 添加属性useGeneratedKeys = truekeyProperty = "id"即可在数据添加后获取

添加数据的ID值。

同一个方法能否既用注解方式又用XML方式

不能  只能在注解和xml方式二选一

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

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

相关文章

字节青训前端笔记 | Vite 入门

本节课&#xff0c;讲师将前置介绍有关前端工程基本知识&#xff0c;同时讲解前端构建工具及解决问题&#xff0c;进而引出作为前端构建工具的 Vite 是什么及其在开发过程中的应用。 为什么使用构建工具 前端是有一系列资源组成的&#xff0c;js 代码&#xff0c;css样式&…

ESP32 Micropython编程(Thonny)04---- 人体感应模块

本人持续分享更多关于嵌入式和单片机的知识&#xff0c;如果大家喜欢&#xff0c;别忘点个赞加个关注哦&#xff0c;让我们一起共同进步 最近使用到人体感应模块HC-SR501&#xff0c;这个模块使用十分简单&#xff0c;看下面代码就可以看出了&#xff0c;而且应用广泛&#xff…

Java 优先级队列(堆)

目录1. 优先级队列&#xff08;堆&#xff09;的概念2. 建立大根堆&#xff08;向下调整算法&#xff09;3. 堆插入元素&#xff08;向上调整算法&#xff09;4. 堆删除元素&#xff08;向下调整算法&#xff09;5. 优先级队列PriorityQueue的特性6. 优先级队列PriorityQueue的…

单向环形链表和约瑟夫问题

单向环形链表和约瑟夫问题 Josephu 问题为&#xff1a;设编号为1&#xff0c;2&#xff0c;… n的n个人围坐一圈&#xff0c;约定编号为k&#xff08;1<k<n&#xff09;的人从1开始报数&#xff0c;数到m 的那个人出列&#xff0c;它的下一位又从1开始报数&#xff0c;数…

ubuntu压缩、归档 tar zip gzip的介绍

不同文件需要使用不同的工具进行压缩和解压&#xff0c;可以使用file文件查看是什么类型的文件 file 文件名如图&#xff0c;在第二行看到这个文件是gzip类型的。 文件&#xff1a;gzip 工具&#xff1a;gunzip gunzip是 gnu unzip的缩写。用来解压gzip压缩包。 解压命令 …

linux 内存管理

0.前言 1.了解Linux内存的管理机制(分段分页) 2.了解虚拟内存和物理内存的映射方式 3.了解操作系统内存与磁盘的交互&#xff08;分页机制---》缺页重读机制&#xff0c;用时拷贝机制) 4.应用程序如何高效使用内存和高级程序的设计方法 1.linux物理使用情况 内核区&#x…

动态站点地图提交百度收录

站点地图&#xff08;sitemap&#xff09;是一个网站的结构化数据&#xff0c;搜索引擎可以通过站点地图迅速了解一个网站的内容&#xff0c;加快搜索引擎收录。 一般来说&#xff0c;站点地图是以.xml结尾的静态化文件&#xff0c;例如个人博客和生化环材网的站点地图链接分别…

【Mysql】事务的四大特性(ACID)

【Mysql】事务的四大特性(ACID) 文章目录【Mysql】事务的四大特性(ACID)1. 概述1.1 并发事务问题1.1.1 脏读1.1.2 不可重复读1.1.3 幻读1.2 事务隔离级别1. 概述 事务的四大特性&#xff1a; 原子性&#xff08;Atomicity&#xff09;&#xff1a;事务是不可分割的最小操作单…

ROS学习寄录2

1 ROS核心概念 1.1 节点&#xff08;Node&#xff09; &#xff08;1&#xff09;执行具体任务的进程、独立运行的可执行文件 &#xff08;2&#xff09;不同节点可以使用不同的语言&#xff0c;可分布式运行在不同的主机 &#xff08;3&#xff09;节点在系统中的名称必须…

MODBUS总线的学习笔记

MODBUS学习记录 下面所有资料均copy于安富莱电子和博客中&#xff0c;仅作为个人学习笔记记录&#xff0c;写的不好请见谅。 1.modbus简介介绍 Modbus 是由 Modicon&#xff08;现为施耐德电气公司的一个品牌&#xff09;在 1979 年发明的&#xff0c;是全球第一个真正 用于…

PowerShell 学习笔记:操作XML文件

XML文件是有一定格式要求的文本文件。百度百科可扩展标记语言 (Extensible Markup Language, XML) &#xff0c;标准通用标记语言的子集&#xff0c;可以用来标记数据、定义数据类型&#xff0c;是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 可扩展…

adversarial Learning and attacks 学习笔记

GANs大家是比较熟悉的网络结构&#xff0c;adversarial attacks 也不是很新的概念了。近期的工作有涉及到adversarial attacks&#xff0c;故整理一下学习的内容。 Adversarial Attacks 对抗攻击样本&#xff1a;一张正常的大熊猫图片&#xff08;左图&#xff09;在被加入噪…

Leetcode.1828 统计一个圆中点的数目

题目链接 Leetcode.1828 统计一个圆中点的数目 题目描述 给你一个数组 points&#xff0c;其中 points[i] [xi, yi] &#xff0c;表示第 i个点在二维平面上的坐标。多个点可能会有 相同 的坐标。 同时给你一个数组 queries&#xff0c;其中 queries[j] [xj, yj, rj]&#x…

Feign入门

Feign入门Feign入门Feign代替RestTemplate自定义配置Feign使用优化最佳实践Feign入门 Feign代替RestTemplate RestTemplate方式调用存在的问题 先来看我们以前利用RestTemplate发起远程调用的代码&#xff1a; String url "http://userservice/user/" order.ge…

linux(Debian11)安装后安装无线网卡等驱动

在工作和生活中&#xff0c;我们经常会用到linux系统&#xff0c;debian作为一个老牌的程序员常用发行版&#xff0c;自然成为我们的首选。 下面记录一下&#xff0c;安装无线网卡的过程。 首先&#xff0c;可以通过命令查看自己所需要的驱动 lspci -vvv iwlwifi 就是我所需…

机器学习为什么使用归一化? 有哪些归一化算法?

一、归一化的基本介绍 1. Why 归一化? 一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。或者举一个更浅显的例子:对房子进行…

Java——组合总和(3)

题目链接 leetcode在线oj——组合总和&#xff08;3&#xff09; 题目描述 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff…

计算机网络 —— TCP篇 TCP 重传、滑动窗口、流量控制、拥塞控制

计算机网络系列文章目录 TCP篇 TCP 重传、滑动窗口、流量控制、拥塞控制 文章目录计算机网络系列文章目录前言4.2 TCP 重传、滑动窗口、流量控制、拥塞控制4.2.1 重传机制超时重传什么情况会触发超时重传超时时间应该设置为多少呢&#xff1f;快速重传SACKD-SACK4.2.2 滑动窗…

【数据结构之二叉树系列】万字深剖数据结构---堆

目录前言一、堆二、堆的实现(重点)1. 数据类型重定义2. 堆结构的定义3. 堆结构的重定义三、堆中常见的基本操作&#xff08;重点&#xff09;1. 声明2. 定义&#xff08;1&#xff09;初始化&#xff08;2&#xff09;销毁&#xff08;3&#xff09;插入数据&#xff08;4&…

macOS Monterey 12.6.3 (21G419) 正式版 ISO、IPSW、PKG 下载

macOS Monterey 12.6&#xff0c;皆为安全更新&#xff0c;不再赘述。 macOS Monterey 12.6&#xff0c;发布于 2022 年 9 月 12 日&#xff08;北京时间今日凌晨&#xff09;&#xff0c;本次为安全更新。 今日&#xff08;2022-07-21&#xff09;凌晨&#xff0c;Apple 终于…