当前位置: 首页 > news >正文

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

目录

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.mrgr.cn/news/42142.html

相关文章:

  • 秋天,相遇最美校园
  • 挖矿病毒记录 WinRing0x64.sys
  • 基于深度学习的视频内容理解
  • 【一文理解】conda install pip install 区别
  • Flutter与原生代码通信
  • 网络基础知识总结(二)
  • 游览器输入URL并Enter时都发生了什么 面试完美回答
  • index索引
  • Mybatis框架梳理
  • 【网络原理】Udp报文结构,保姆级详解,建议收藏
  • java_数据类型
  • C语言复习概要(一)
  • mysql安装及使用·1
  • vgg19提取特征
  • Vue.js 组件开发知识详解
  • 亚马逊云乱扣费,被不知不觉扣钱真的好气呀
  • C--编译和链接见解
  • 指针——字符指针
  • 【大数据】Doris 数据库与表操作语法实战详解
  • 【Docker从入门到进阶】04.高效实践