Mybatis快速入门--映射文件(二)(优化版)

简介: Mybatis快速入门--映射文件(二)(优化版)

参数传递


Mybatis获取参数值的两种方式:${}和#{}

${}本质字符串拼接(可能造成sql注入)

{}本质占位符赋值


单个参数


可以接受基本类型,对象类型,集合类型的值。

这种情况MyBatis可值接使用这个参数﹐不需要经过任何处理。

如下:

AccountMapper接口中的deleteById方法只有一个参数,MyBatis可值接使用这个参数﹐不需要经过任何处理。

package com.caq.study.mapper;
import com.caq.study.entity.Account;
public interface AccountMapper {
    boolean deleteById(Integer id);
}


多个参数


任意多个参数,都会被MyBatis重新包装成一个Map传入。

Map的key是param1 , param2 ,paramn

或者传入索引值0,1...,值就是参数的值

image.png

多个参数的情况一般不这样传,一般通过注解@Param来给参数命名,这样能做到见名之意

为参数使用@Param起一个名字,MyBatis就会将这些参数封装进map中, key就是我们自己指定的名字

image.png

#{key}里面的key值不能写成原参数名,要么通过@params指定,要么写param1 , param2 ....

多个参数会被封装成一个map

key:使用@Param注解指定的值

value:参数值

{指定的key}取出对应的参数值

image.png


POJO


一般增、改数据的时候,我们会直接传入一个实体类(pojo)

当这些参数属于我们业务POJO时,我们直接传递POJO


Map


传递Map的情况适用于多个参数且参数不属于pojo,不经常使用,为了方便,可传入map

image.png


DTO


DTO:数据传输对象

传递DTO的情况适用于多个参数且参数不属于pojo,但经常使用,为了方便,可传入DTO


特殊情况


如果我们这样传:
Account selectById(@Param("id") Integer id,String name);
取值: id==>#{id/ param1}lastName==>#{param2}
如果是Collection (List、Set)类型或者是数组,
也会特殊处理。也是把传入的list或者数组封装在map中
key: collection (collection),如果是List还可以使用这个key(list)
数组(array)
public Employee getEmpById(List<Integer> ids);
取值:取出第一个id的值:#{list[0]}



相关文章
|
1月前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
35 0
|
2月前
|
SQL
Mybatis.xml文件中大于小于等于
Mybatis.xml文件中大于小于等于
9 0
|
2月前
|
XML Oracle Java
mybatis反向生成实体类、dao层以及映射文件
mybatis反向生成实体类、dao层以及映射文件
15 1
|
11天前
|
SQL Java 数据库连接
15:MyBatis对象关系与映射结构-Java Spring
15:MyBatis对象关系与映射结构-Java Spring
30 4
|
16天前
|
SQL Java 数据库连接
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射
【Mybatis】深入学习MyBatis:概述、主要特性以及配置与映射
|
27天前
|
XML Java 数据库连接
java对象有集合mybatis如何映射
java对象有集合mybatis如何映射
19 4
|
2月前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
17 1
|
2月前
|
Java 数据库连接 mybatis
mybatis简单案例源码详细【注释全面】——Dao层映射文件(UserMapper.xml)【重要】
mybatis简单案例源码详细【注释全面】——Dao层映射文件(UserMapper.xml)【重要】
11 0
|
2月前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
72 1
|
14天前
|
XML Java 数据库连接
Spring Boot与MyBatis:整合与实战
【4月更文挑战第29天】在现代的Java Web应用开发中,持久化层框架扮演了至关重要的角色。MyBatis作为一款优秀的持久化框架,被广泛应用于Java开发中。Spring Boot提供了简化开发流程的功能,而与MyBatis的整合也变得更加便捷。
24 0