Mybatis的增删改查
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集合
其他类型:直接使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!