关于Mybatis框架操作时注意的细节,常见的错误!(博主亲生体会的细节!)

news2024/11/28 2:31:32

目录

1.在对DB进行CRUD时,除了查,其余的操作都要进行事务的提交否则不成功。

2.用sqlSession原生方法时,第一个参数方法名,是xml文件中定义的id名,底层找的是你这个接口所定义的方法名。

3.以包为单位引入映射文件  1、mapper接口所在的包要和映射文件所在的包一致   2、mapper接口要和映射文件的名字一致(当然用注解或者将xml与接口放在一起也可以)

4.当要查找整个表信息时,必须指定返回类型,并且返回类型是集合中元素的类型 

5.使用xml或者注解方式写实体方法时注意映射文件的区别(resouces下方配置文件,java下放接口以及pojo类) 。

6.在插入一条记录时,可以使用@Operaton操作返回自增长的主键

7.当要为一个包下所有的类取别名typealiases时,直接引入包,且别名的类型默认以小写形式,但实际是不区分大小写

8.当方法中传入多个参数时用@Param来保证方法参数能被SQL的占位符正确识别(也可以通过传入对象解决)

9. 当表中的字段名和类中的属性名不一致时用resultMap进行映射解决

10.在进行模糊查询时需要用"%${}%"进行查询

 11.进行查询select时必须有返回类型,要不然会报PersistenceException错误

 12.在使用动态SQL中if语句时test中直接写属性名不要写#{age}否则会报错

 13.在使用标签的时候,会自动将多余的and删除(提醒大家一下,目前还没出过错)

14. 在查找数据返回对象的集合时,在返回类型中应该写返回集合中元素的类型,否则会报PersistenceException

15.如果始终报错无法找到你的xml配置文件,不论重构了多少次都不行,请实现如下操作

16. 使用动态SQL标签时,set元素内的内容不能全部为空,否则会报sql语法错误

17. 在动态SQL语句运用中 <号不能运用否则会报错 应该用< 

 18. 关联映射一对多,在进行嵌套查询时collection中记得要表明column属性(注意和嵌套结果的区别!)


1.在对DB进行CRUD时,除了查,其余的操作都要进行事务的提交否则不成功。


2.用sqlSession原生方法时,第一个参数方法名,是xml文件中定义的id名,底层找的是你这个接口所定义的方法名。


3.以包为单位引入映射文件  1、mapper接口所在的包要和映射文件所在的包一致   2、mapper接口要和映射文件的名字一致(当然用注解或者将xml与接口放在一起也可以)


4.当要查找整个表信息时,必须指定返回类型,并且返回类型是集合中元素的类型 


5.使用xml或者注解方式写实体方法时注意映射文件的区别(resouces下方配置文件,java下放接口以及pojo类) 。


6.在插入一条记录时,可以使用@Operaton操作返回自增长的主键


7.当要为一个包下所有的类取别名typealiases时,直接引入包,且别名的类型默认以小写形式,但实际是不区分大小写


8.当方法中传入多个参数时用@Param来保证方法参数能被SQL的占位符正确识别(也可以通过传入对象解决)

 要不然可能会报错


9. 当表中的字段名和类中的属性名不一致时用resultMap进行映射解决

 为什么不一致会报错呢?因为在查询记录时,返回的是一个pojo对象,底层会自动的根据表的字段名和类中的属性名进行匹配,并创建pojo对象进行返回!!!!


10.在进行模糊查询时需要用"%${}%"进行查询

 否则会报PersistencetExeception


 11.进行查询select时必须有返回类型,要不然会报PersistenceException错误


 12.在使用动态SQL中if语句时test中直接写属性名不要写#{age}否则会报错

 会报这种格式错误


 13.在使用<where>标签的时候,会自动将多余的and删除(提醒大家一下,目前还没出过错)

14. 在查找数据返回对象的集合时,在返回类型中应该写返回集合中元素的类型,否则会报PersistenceException


15.如果始终报错无法找到你的xml配置文件,不论重构了多少次都不行,请实现如下操作

   <!--在build中配置resources,来防止我们资源导出失败的问题
       1. 不同的idea/maven 可能提示的错误不一样
       2. 不变应万变,少什么文件,就增加相应配置即可
       3. 含义是将 src/main/java目录和子目录 和 src/main/resources目录和子目录
       的资源文件 xml 和 properties在build项目时,导出到对应的target目录下
   -->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>
    </build>

16. 使用动态SQL标签<set>时,set元素内的内容不能全部为空,否则会报sql语法错误


17. 在动态SQL语句运用中 <号不能运用否则会报错 应该用&lt; 


 18. 关联映射一对多,在进行嵌套查询时collection中记得要表明column属性(注意和嵌套结果的区别!)

<collection property="xxx" column = "id" oftype
    = "monster" select="com.sn.mapper.MonsterMapper.selectID">

 

作者现在用到的mybatis的东西较少,但这些都是初学时容易犯下的错误!后续用到发现错误会实时更新的! 加油 ! 赚八万!

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

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

相关文章

第三节-类与对象(2)默认成员函数详解

1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类&#xff08;空类大小为1&#xff09;。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数&#xff1a;…

DOM树(下) -- 第八课

文章目录 前言一、DOM属性操作1. 获取属性值2. 设置属性值3. 移除属性值 二、节点1.什么是节点?2. 节点层级1. 获取父级节点2. 获取兄弟节点3. 获取子节点 3. 节点操作1. 创建节点2. 添加和删除节点 三、事件进阶1. 注册事件1. 传统方式2. 监听方式 2. 删除事件3. 事件流 四、…

第4篇:MSSQL日志分析----应急响应之日志分析篇

常见的数据库攻击包括弱口令、SQL注入、提升权限、窃取备份等。对数据库日志进行分析&#xff0c;可以发现攻击行为&#xff0c;进一步还原攻击场景及追溯攻击源。 0x01 MSSQL日志分析 首先&#xff0c;MSSQL数据库应启用日志记录功能&#xff0c;默认配置仅限失败的登录&…

Veritus netbackup 管理控制台无法连接:未知错误

节假日停电&#xff0c;netbackup服务器意外停机后重新开机&#xff0c;使用netbackup管理控制台无法连接&#xff0c;提示未知错误。 ssh连接到服务器&#xff0c;操作系统正常&#xff0c;那应该是应用有问题&#xff0c;先试一下重启服务器看看。重新正常关机&#xff0c;重…

【Ubuntu】使用阿里云apt源来更新apt源

1.前言 我在京东云买了一个云服务器&#xff0c;但是我第一次使用apt的时候&#xff0c;发现遇到了下面这些情况 后面听老师讲&#xff0c;还需要执行下面这个 但是我再次使用apt下载软件的时候&#xff0c;还是出现了下面这个情况 后面问了老师才知道是apt源的问题&#x…

解决Github打不开或速度慢的问题

一、原因 我们先分析一下Github在国内访问慢或有时候登陆不上去的问题原因&#xff1a;其实这都是因为我们访问github官网时是直接访问域名即github.com&#xff0c;那么中间有个域名通过DNS解析的过程&#xff0c;将域名解析为对应的ip地址&#xff0c;其实主要时间都是花在了…

【寻找one piece的算法之路】——双指针算法!他与她是否会相遇呢?

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;寻找one piece的刷题之路 什么是双指针算法 双指针算法是一种常用的编程技巧&#xff0c;尤其在处理数组和字符串问题时非常有效。这种方法的核心思想是使用两个指针来遍历数据结构&#xff0c;这两…

学习记录:js算法(五十二):验证二叉搜索树

文章目录 验证二叉搜索树我的思路网上思路 总结 验证二叉搜索树 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的 左子树 只包含 小于 当前节点的数。 节点的 右子树 只包含 大于 当前节点的数。 所有…

【Python】AudioLazy:基于 Python 的数字信号处理库详解

AudioLazy 是一个用于 Python 的开源数字信号处理&#xff08;DSP&#xff09;库&#xff0c;设计目的是简化信号处理任务并提供更直观的操作方式。它不仅支持基础的滤波、频谱分析等功能&#xff0c;还包含了滤波器、信号生成、线性预测编码&#xff08;LPC&#xff09;等高级…

Mybatis框架梳理

Mybatis框架梳理 前言1.ORM2.模块划分2.1 ORM的实现2.2 SQL的映射2.3 插件机制2.4 缓存机制2.5 其他 3. 愿景 前言 如果让我聊一聊mybatis&#xff0c;我该怎么说呢&#xff1f;开发中时时刻刻都在用它&#xff0c;此时此刻&#xff0c;脑海中却只浮现ORM框架这几个字&#xff…

Linux --入门学习笔记

文章目录 Linux概述基础篇Linux 的安装教程 ⇒ 太简单了&#xff0c;百度一搜一大堆。此处略……Linux 的目录结构常用的连接 linux 的开源软件vi 和 vim 编辑器Linux 的关机、开机、重启用户登录和注销用户管理添加用户 ⇒ ( useradd 用户名 ) &#xff08; useradd -d 制定目…

【AIGC】内容创作——AI文字、图像、音频和视频的创作流程

我的主页&#xff1a;2的n次方_ 近年来&#xff0c;生成式人工智能&#xff08;AIGC&#xff0c;Artificial Intelligence Generated Content&#xff09;技术迅速发展&#xff0c;彻底改变了内容创作的各个领域。无论是文字、图像、音频&#xff0c;还是视频&#xff0c;A…

SPARK调优:AQE特性(含脑图总结)

学完AQE需要能够回答如下的几个问题&#xff1a; 什么是AQE&#xff1f;AQE的实现原理是什么&#xff1f;AQE的特性有哪些&#xff1f;使用什么参数实现&#xff1f;AQE每个特性可以解决什么问题&#xff1f;什么问题是AQE不能解决的 HL&#xff1a;学习脑图如下 SparkAQE是spa…

MES系统适用于哪些行业?MES系统对于企业的作用和价值

MES系统&#xff08;制造执行系统&#xff09;广泛应用于多个行业&#xff0c;并在这些行业中发挥着重要作用&#xff0c;为企业带来了显著的价值。以下是对MES系统适用行业及其对企业作用和价值的详细分析&#xff1a; 一、MES系统适用的行业 电子信息行业&#xff1a; 随着市…

大功率LED模块(5V STM32)

目录 一、介绍 二、模块原理 1.尺寸介绍 2.模块原理图 3.引脚描述 三、程序设计 main.c文件 timer.h文件 timer.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 大功率LED模块是一种照明设备&#xff0c;它将大功率高亮度发光二极管(LED)集成在铝基板上&…

Linux学习笔记(二):深入理解用户管理、运行级别与命令行操作

Linux学习笔记&#xff08;二&#xff09;&#xff1a;深入理解用户管理、运行级别与命令行操作 Linux学习笔记&#xff08;一&#xff09;&#xff1a;Linux学习环境的安装及远程连接工具的使用 1. 用户管理 1.1 用户密码管理 创建用户密码 使用 passwd 命令可以为指定用户…

封装了一个iOS水平方向动态宽度layout

我们有时候会遇到这样的情形&#xff0c;就是需要展示一些动态的标签&#xff0c;宽度是动态的&#xff0c; 水平方向是一行&#xff0c;其实这种情况还是比较容易处理的&#xff0c;只是一下子想不起来&#xff0c; 这里做了一个相关的需求&#xff0c;将思路和代码记录下来&a…

第5章 总线与微命令实验

第5章 总线与微命令实验 5.1实验目的 &#xff08;1&#xff09;理解总线的概念和作用。 &#xff08;2&#xff09;连接运算器与存储器&#xff0c;熟悉计算机的数据通路。 &#xff08;3&#xff09;理解微命令与微操作的概念。 5.2实验要求 &#xff08;1&#xff09;做…

69 BERT预训练_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录NLP里的迁移学习Bert的动机Bert架构对输入的修改五、预训练任务1、2、3、 六、1、2、3、 七、1、2、3、 八、1、2、3、 NLP里的迁移学习 之前是使用预训练好的模型来抽取词、句子的特征&#xff0c;例如 word2vec 或语言模型这种非深度学习…

香酥胡麻饼 一口沦陷的传统美食

&#x1f96f;美食发现 | 胡麻饼&#xff0c;一口咬出的千年韵味&#x1f96f;&#x1f60b;宝子们&#xff0c;今天我要给大家分享一款超级有历史底蕴的美食 —— 食家巷胡麻饼。 ✨食家巷胡麻饼&#xff0c;那可是有着悠久历史的传统美食。在古代&#xff0c;它就备受人们喜…