Spring Boot与Mybatis数据交互

  之前用的SSH框架用习惯了后,现在用SSM框架感觉把以前的好多东西都给忘了,就说这个业务层和数据库的数据交互这块,这几天不停地再网上恶补了一些。

一、顺序传参法 

Mapper层: 
传入需要的参数

public interface GoodsMapper {

    public Goods selectBy(String name,int num);         
}

  Mapper.xml: 
*使用这种方式,在SpringBoot中,参数占位符用#{arg0},#{arg1},#{arg…} 

总结:这种方法不建议使用,sql层表达不直观,且一旦顺序调整容易出错。

二、@Param注解传参法 
Mapper层:

public interface GoodsMapper {

    public Goods selectBy(@Param("name")String name,@Param("num")int num);

}

  Mapper.xml: 
*#{}里面的名称对应的是注解@Param括号里面修饰的名称。

<select id="selectBy" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List" />
    from goods
    where good_name=#{name} and good_num=#{num}
</select>

  总结:这种方法在参数不多的情况还是比较直观的,推荐使用。

三、使用Map封装参数 

Mapper层: 
将要传入的多个参数放到Map集合

Mapper.xml: 
*#{}里面的名称对应的是Map里面的key名称

总结:这种方法适合传递多个参数,且参数易变能灵活传递的情况。

Service层: 
带上要传入的参数

Service接口实现层: 
封装Map集合:

控制层

public R forbidden(@RequestParam Map<String, Object> params) {
		// 把修改时间添加上
		Map<String, Object> map1 = new HashMap<String, Object>();
		String param = params.get("params").toString();
		map1 = JSON.parseObject(param);
		String wxNumber = map1.get("wxNumber") == null ? null : map1.get("wxNumber").toString();
		String isForbidden = map1.get("isForbidden") == null ? null : map1.get("isForbidden").toString();
		ManagementMainService.getWxNumberUpdateForbidden(isForbidden, new Date(), wxNumber);

		return R.ok("成功");
	}

  

原文地址:https://www.cnblogs.com/zmmfeng/p/11280578.html