Mybatis学习

Mybatis 查看详情

1.编写接口方法:Mapper接口

Brand selectById(int id);

参数:id

结果:Brand 

2.编写SQL语句:SQL映射文件

3.执行方法

 参数占位符:

1.#{}:会将其替换为 ? ,为了防止SQL注入

2.${}:拼sql。会存在SQL注入问题

3.使用时机:

   *参数传递的时候:#{}

  *表名或者列名不固定的情况下:${} 会存在SQL注入问题

*特殊字符处理:

1.转义字符

2.CDATA区:

测试 

 

Mybatis 条件查询

1.编写接口方法:Mapper接口

参数:查询条件

结果:List

/**
*条件查询
*参数接收  
  1.散装参数:如果方法中有多个参数,需要使用@Param("SQL参数占位符名称")
  2.对象参数:对象属性名称要和参数占位符名称一致
  3.map集合参数
*/
List selectByCondtion(@Param("status")int status,@Param("companyName") String companyName,@Param("brandName") String brandName);

List selectByCondition(Brand brand);

List selectByCondition(Map map);

2.编写SQL语句:SQL映射文件

3.执行方法,测试

map方法:

Map map = HashMap();
map.put("status" , status);
map.put("companyName" , companyName);
map.put("brandName" , brandName);


List brands = brandMapper.selectBycondition(map);
System.out.println(brands);

总结:SQL语句设置多个参数有几种方式

1.散装参数:需要使用@Param("SQL中的参数占位符名称")

2.实体类封装参数

    *只需要保证SQL中的参数名和实体类属性名对应上,即可设置成功

3.map集合

   *只需要保证SQL中的参数名和Map集合的键的名称对应上,即可设置成功

Mybatis学习_第1张图片

 

Mybatis 动态条件查询