Mybatis的增删改查,主要学了一下几个功能:查询所有,查看详情,动态条件查询,单条件动态查询,添加功能,修改功能,根据id功能删除,批量删除。还有参数传递的一些底层原理。
查询所有:在mapper接口中定义一个方法:List<Brand> selectAll(),在mapper.xml配置文件中编写sql语句<select id="selectAll resultMap=brandResultMap" > select * from tb_user; </select>
这个brandResultMap是一个用来完成映射的标签,因为表的列名和实体类的属性名有时候不一样会导致执行sql时没有参数值为null,所以需要设置brandResultMap,id是brandResultMap的唯一标识,就像其他标签中的id一样,然后type中定义返回的结果类型。在这个标签中id指定主键字段的标识属性,result指定一般字段的标识属性。在id或者result标签中,column中写的是表的字段名,propert中写实体属性名,总之就是谁不一样就把谁写上去。
查看详情:查看详情是根据表中id,来查看对象的详情 ,在mapper.xml文件中编写sql为 <select id ="selectById" resultMap="brandReultMap"> select * from tb_brand where id = #{id};</select>
动态条件查询:当查询条件很多,而且不确定时,需要用到动态条件查询,需要用到<if>标签判断输入的查询参数是否为null(空值),还有<where>标签,这个标签是防止出现sql语句的拼接错误。
单条件查询:当查询条件是可以选择的,但是每次只能查询一次时,就要用到单条件查询 ,<choose>标签相当于switch,<when>标签相当于case
添加功能:添加功能就是 add 然后需要注意的时是:标签中设置useGeneratedKeys="true" keyProperty="id"这两个属性可以在执行sql的结果后能得到id号
修改功能:update tb_brand set ...where id = #{id};。修改功能中也需要用<if>标签判断输入的更改参数是否为空,然后<set>标签就有点类似于<where>标签,是为了防止sql语句拼接错误。
删除功能:
<delete id="delectById">
delete from tb_brand where id = #{id};
</delete>
批量删除:删除多个,把id号存在数组当中,然后遍历数组得到id,再根据id进行删除
参数传递:讲解调用接口的select,update方法的时候,参数是怎么传进去的
1.多个参数:封装成map集合,可以使用@Param注解
2.单个参数:pojo类型:直接使用,属性名和参数占位符名称一致
Map集合:直接使用,键名和参数占位符名称一致
Collection:封装成map集合,可以使用@Param注解,替换map集合中默认的arg键名
List:封装成map集合,。。。。
Array:封装成map集合
其他类型:直接使用
标签:map,功能,标签,改查,查询,增删,sql,Mybatis,id From: https://www.cnblogs.com/y-258/p/16879200.html