注意方法的返回值
增,删,改方法的返回值都是int/void
查询操作,返回值由查询的结果决定
如果查询的结果最多只有一条记录(要么一条没有),则返回值为一个实体类的对象User
如果查询的结果可能有多条,则返回的结果为一个泛型集合,List <User>
![](https://i-blog.csdnimg.cn/blog_migrate/220fc98e489875688803bf8b5235ba4c.png)
注意方法的形参(parameterType)
如果sql语句没有占位符,则该方法不需要形参
如果sql语句只有一个占位符,则根据字段类型直接给一个形参
如果参数是基本数据类型以及String类型,在注入值时与形参无关
如果sql语句有多个占位符,而对应的值可以封装成实体类的对象,则用对象入参User user
如果sql语句存在多个占位符,而且不能封装成实体类对象,则通过注解@Pram()入参,值注入到#{}中
![](https://i-blog.csdnimg.cn/blog_migrate/87683911822373fdd8e9607ef4058e77.png)
resultType与resultMap的区别(ResultMap和ResultType,它们都是用来表示查询结果集与java对象之间的一种关系,将查询结果集,按照某种关系映射到java对象 )
resultType与resultMap不能同时使用,只能使用一个
resultType适用于单表查询,并且查询的结果集中的字段名必须和实体类中的成员变量完全一致才能使用
resultMap适用场景:
当进行联表查询,一般都使用resultMap
当进行单表查询,出现查询结果集中字段名与实体类成员变量名不一致也可以使用resultMap
![](https://i-blog.csdnimg.cn/blog_migrate/87683911822373fdd8e9607ef4058e77.png)
定义一个resultMap
id:名称自定义,取值唯一
type:配置接口中方法返回值类型
result:用于配置表中字段与实体类中成员变量的对应关系
property:配置实体类中成员变量名称
column:配置表中字段名,有别名则用别名
配置一对一关联关系(association)
property:配置实体类中一对一关系的对象名称
javaType:配置一对一的实体类的数据类型
通过嵌套查询,实现一对一关联关系
column:取值是当前查询的关联字段名,用于将该字段名的值作为参数传递到嵌套的查询
select:取值是接口全类名.方法名,用于根据关联字段查询对应的功能
![](https://i-blog.csdnimg.cn/blog_migrate/377c50620a34fd37d053feac29c86886.png)
配置一对多关联关系(collection)
property:配置表示一对多关联关系的集合的对象名称
ofType:配置表示一对多关联关系的集合的泛型类型
![](https://i-blog.csdnimg.cn/blog_migrate/2b9047e382aed88824ea8a47b55a730d.png)
引入sql片段
![](https://i-blog.csdnimg.cn/blog_migrate/eea3d3951d2f4242a96e8698e1a112f1.png)
转发与重定向
![](https://i-blog.csdnimg.cn/blog_migrate/8e9e620f73ba3bdf6d4ccff5ba5b35f3.png)
如果是目标页面要用,别的页面都不用则用 request
多个页面用同一数据 session
所有用户都要用同一数据 servletContext