mybatis的一些用法

1.XXXMapper.xml中:

namespace标识mapper接口的完整路径。

resultMap标签表示手动映射数据库字段和实体类属性,resultMap中的id唯一标识该resultMap,type表示实体类的完整路径。

insert标签:id表示接口中的方法名,parameterType表示sql语句中的参数类型,对应实体类的完整路径。

foreach标签:collection表示接口方法传入的参数,如果使用了@param去重新表示参数名,那就用注解后的名字。

if标签:它中的test属性的值是判断,true就执行它的条件语句。

order by默认增序排列。

Group by的select的字段要满足出现在聚合函数中或者group by后。

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

HAVING 子句可以让我们筛选分组后的各组数据

 

参数parameterType:代表传入sql语句中的参数的类型

返回类型用resultType或resultMap表示.

resultType:自动映射。前提:实体类中的属性名要与数据库表中的字段名对应。

resultMap:手动映射-当实体类中的属性名与数据库表中的字段名不一致时使用。

 

2.#{参数}:参数名称可以任意取

注意以下区别:

 #{}: select * from user where id = ?; 占位符时用#,此时?=='参数'

 ${}: select * form user where username like '%${参数}%'; 字符串拼接时用$

使用 select * from user where username like "%"#{value}"%"防止sql注入

${}中的参数名称必须是value.

#{}中的参数可以是类型可以是value,如#{item.name,jdbcType = String}

 

3.

 

 

select LAST_INSERT_ID()

insert into user (username,birthday,address,sex) values (#{username},#{birthday},#{address},#{sex})

 

4.Mapper接口开发需要遵循以下规范:

    1)、Mapper.xml文件中的namespace与mapper接口的类路径相同。

    2)、Mapper接口方法名和Mapper.xml中定义的每个statement的id相同

    3)、Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同

    4)、Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同

 

5.标签:

  1).标签可以去掉where语句后的第一个and。

2).提取公共sql部分,可重用
 

    

             select * from user

    

    

 

6.foreach标签

如果接口传过来的参数为Integer[]类型的,则collection="array",此时parameterType属性去掉 如果接口传过来的参数为List类型的,则collection="list",此时parameterType属性去掉

collection:maper接口传递过来的参数,如果接口参数列表有@param ,那么collection就是@param注解的参数名。

item:循环遍历的值

open:遍历开始

close:遍历结束

separator:分隔符

批量删除用户,当传入的参数类型为List<类名>这样的集合时,parameterType的值为类名。

 

你可能感兴趣的:(mybatis)