MyBatis 中 ${}和 #{}千万不要乱用

1、#{}是预编译处理,MyBatis在处理#{ }时,它会将sql中的#{ }替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,如上面的值 “4,44,514”就会变成“ ‘4,44,514’ ”;

2、 是 字 符 串 替 换 , 在 处 理 是 字 符 串 替 换 , M y B a t i s 在 处 理 时 , 它 会 将 s q l 中 的 {}是字符串替换,在处理{ }是字符串替换, MyBatis在处理{ }时,它会将sql中的 MyBatis,sql{ }替换为变量的值,传入的数据不会加两边加上单引号。

注意:使用${ }会导致sql注入,不利于系统的安全性!SQL注入:就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。常见的有匿名登录(在登录框输入恶意的字符串)、借助异常获取数据库信息等

package com.xiaobu.mapper;

import com.xiaobu.base.mapper.MyMapper;
import com.xiaobu.entity.Country;

import java.util.List;

/**
 * @author xiaobu
 * @version JDK1.8.0_171
 * @date on  2018/11/27 19:21
 * @description V1.0
 */
public interface CountryMapper extends MyMapper<Country> {
    /**
     * 功能描述:通过#{}来进行查询
     *
     * @param ids id
     * @return java.util.List<com.xiaobu.entity.Country>
     * @author xiaobu
     * @date 2019/7/26 11:53
     * @version 1.0
     */
    List<Country> findList(String ids);

    /**
     * 功能描述:通过${}来进行查询
     *
     * @param ids id
     * @return java.util.List<com.xiaobu.entity.Country>
     * @author xiaobu
     * @date 2019/7/26 11:53
     * @version 1.0
     */
    List<Country> findList2(String ids);

    /**
     * 功能描述: 通过foreach来进行查询
     *
     * @param ids id
     * @return java.util.List<com.xiaobu.entity.Country>
     * @author xiaobu
     * @date 2019/7/26 11:53
     * @version 1.0
     */
    List<Country> findListByForEach(List<Integer> ids);
}

<?xml version="1.0" encoding="UTF-8" ?>


<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xiaobu.mapper.CountryMapper">


    <select id="findList" resultType="com.xiaobu.entity.Country">
        select * from country where id in (#{ids} )
    </select>


    <select id="findList2" resultType="com.xiaobu.entity.Country">
        select * from country where id in (${ids} )
    </select>
    
    <select id="findListByForEach"  parameterType="List" resultType="com.xiaobu.entity.Country">
        select * from country where id in
        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </select>
</mapper>
 @Test
    public void  countTotal(){
        //统计总数 SELECT COUNT(Id) FROM country
        Example example = new Example(City.class);
        int count =countryMapper.selectCountByExample(example);
        System.out.println("count = " + count);

        //按条件查询  SELECT COUNT(Id) FROM country
        Country country = new Country();
        //country.setCountryname("1234");
        int conunt2 = countryMapper.selectCount(country);
        System.out.println("conunt2 = " + conunt2);
    }





    @Test
    public void  findList(){
        //Preparing: select * from country where id in ( '1,2,3')
        List<Country> countries = countryMapper.findList("1,2,3");
        //countries = [Country(countryname=Angola, countrycode=AO)]
        System.out.println("countries = " + countries);
        //报错   There is no getter for property named 'ids' in 'class java.lang.String
        List<Country> countries2 = countryMapper.findList2("1,2,3");
        System.out.println("countries2 = " + countries2);
    }



    @Test
    public void  findListByForeach(){
        //Preparing: select * from country where id in ( ? , ? , ? )
        //Parameters: 1(Integer), 2(Integer), 3(Integer)
        List<Integer> list = new ArrayList<>(3);
        list.add(1);
        list.add(2);
        list.add(3);
        List<Country> countries2 = countryMapper.findListByForEach(list);
        System.out.println("countries2 = " + countries2);
    }

foreach 说明

  1. item表示集合中每一个元素进行迭代时的别名,
  2. index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,
  3. open表示该语句以什么开始,
  4. separator表示在每次进行迭代之间以什么符号作为分隔符,
  5. close表示以什么结束。
  6. collection指参数类型
MyMyBMyBatisMyBatis 参数MyBatis 参数传MyBatis 参数传递MyBatis 参数传递中MyBatis 参数传递中可以MyBatis 参数传递中可以使用MyBatis 参数传递中可以使用基MyBatis 参数传递中可以使用基本MyBatis 参数传递中可以使用基本类型MyBatis 参数传递中可以使用基本类型、MyBatis 参数传递中可以使用基本类型、包MyBatis 参数传递中可以使用基本类型、包装MyBatis 参数传递中可以使用基本类型、包装类型MyBatis 参数传递中可以使用基本类型、包装类型、MyBatis 参数传递中可以使用基本类型、包装类型、JavaMyBatis 参数传递中可以使用基本类型、包装类型、JavaBeanMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、MapMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramNameMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName}MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramNameMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName}MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQLMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatisMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatisMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @ParamMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以使用MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以使用 foreachMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以使用 foreachMyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以使用 foreach 标签MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以使用 foreach 标签进行MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以使用 foreach 标签进行遍MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以使用 foreach 标签进行遍历MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以使用 foreach 标签进行遍历MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以使用 foreach 标签进行遍历MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以使用 foreach 标签进行遍历解析MyBatis 参数传递中可以使用基本类型、包装类型、JavaBean、Map 等数据类型,通过 #{paramName} 占位符或者 ${paramName} 占位符,在 SQL 语句中映射对应的参数。同时,MyBatis 还支持通过 @Param 注解为参数命名,以提高可读性避免参数名冲突问题。在使用集合类型作为参数时,可以使用 foreach 标签进行遍历解析。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值