MyBatis中重要问题汇总和项目开发过程中遇到的问题记录

    图片来源与B站UP主 up主主页链接

1、Mapper中的参数传递

MyBatis中重要问题汇总和项目开发过程中遇到的问题记录MyBatis中重要问题汇总和项目开发过程中遇到的问题记录
MyBatis中重要问题汇总和项目开发过程中遇到的问题记录

Mapper中参数的传递

单个参数传递举例:模糊查询 :使用concat实现字符串拼接
MyBatis中重要问题汇总和项目开发过程中遇到的问题记录多个参数传递:采用@param()
MyBatis中重要问题汇总和项目开发过程中遇到的问题记录以对象的方式进行传递,当传递多个参数的时候,可以将多个参数封装成对象
MyBatis中重要问题汇总和项目开发过程中遇到的问题记录
参数传递过程中可以将参数封装进对象,也可以封装进Map中
参数传递问题总结
MyBatis中重要问题汇总和项目开发过程中遇到的问题记录

2、ResultMap

    当pojo中的属性名和对应数据库表中的字段名相同时,元素就直接查询就行了,查询出的字段会自动和pojo中的属性进行匹配。
    但是,当pojo中的属性名和对应数据库表中的字段名不同时,这时候查询就会出现问题。所以,这时候我们用到了resultMap。
    在一对多 多对一的联表查询时也会用到ResultMap。下面着重讨论联表查询。
先以一个demo开始
MyBatis中重要问题汇总和项目开发过程中遇到的问题记录    这个任务涉及到了联表查询,用户表和角色表为多对一的关系;但是多对一可以以一对一的方式进行解决(因为拿单个用户来看,单个用户与角色之间是一对一的)。先看一下SQL语句。
MyBatis中重要问题汇总和项目开发过程中遇到的问题记录roleName是role表中的内容,为了能正确返回我们在user中添加一个roleName属性即可,联表查询后参数会自动封装进user类对象并返回。(联表查询的列名必须跟pojo的属性名对应上,才能映射过去)。
MyBatis中重要问题汇总和项目开发过程中遇到的问题记录    实习时,在实际的开发中并没有采用resultmap的associate进行联表查询,而是直接建立了一个与返回结果相对应的实体类DTO。只是用resultmap解决了属性名跟数据库中列字段不对应的问题。
MyBatis中重要问题汇总和项目开发过程中遇到的问题记录MyBatis中重要问题汇总和项目开发过程中遇到的问题记录MyBatis中重要问题汇总和项目开发过程中遇到的问题记录

3、增删改

    上面已经对查询进行了说明,这里讨论增删改问题。注意:增删改其实是有返回值的,返回的是一个int类型的数值,表示的是影响的行数。因为增删改会对数据库产生影响,所以这里会涉及到事务的问题,所以如果是用的test模块进行test的话要有事物的提交过程。
MyBatis中重要问题汇总和项目开发过程中遇到的问题记录