添加以及删除操作的实现

添加

注意:在#{}中的列名需要以驼峰命名;

<insert id="add">
insert into 表名(...列名);
values(...#{});
</insert>

执行方法,测试:
MyBatis事务

openSession():默认开启事务,进行增删改操作后需要使用sqlSession.commit();手动提交事务

openSession():可以设置为自动提交事务(关闭事务);

添加---主键返回

返回主键添加的程序

<insert useGeneratedKeys="true" keyProperty="id"></insert>

修改

修改---全部字段(缺乏灵活性)

<update id="update">
相关操作与之前命令一致
</update>

修改---动态字段(很灵活)

与查询的动态判断相同的思路

将set改变为,将封装起来

删除

删除一个数据

<delete id="deleteById">
delete from 表名 

where id=#{id}
</delete>

删除多个数据(批量删除)

mybatis会将数组集合,封装为一个map集合
默认array=数组
使用@Param注解改变map集合的默认
<delete id="deleteById">
delete from 表名 

where id in(
<foreach collection="" item="id" separator=",">
#{id}
</foreach>
);
</delete>

参数传递 ??????

MyBatis参数封装:(+ 即为加Param注解)
单个参数:
1、POJO类型:直接使用,属性名和参数占位符名称一致即可使用
2、+Map集合:直接使用,属性名和参数占位符名称一致即可使用
3、+Collection:封装为Map集合

map.put("arg0",collection集合);
map.put("collection",collection集合);
map.put("arg0",collection集合);

4、+List

map.put("arg0",list集合);
map.put("collection",list集合);
map.put("list",list集合);

5、+Array
map.put("arg0",数组);
map.put("array",数组);
6、其他类型

多个参数:封装为Map集合,使用Param注解,替换Map集合中默认的arg键名----可读性更高一些

Map.put("参数名称",参数值);    //*n

MyBatis底层对于这些参数进行不同的封装方式

MyBatis提供了一个ParamNameResolver类

注解开发---一般应用在简单的语句中

注解(举例):

查询:@Select

添加:@Insert

删除:@Delete

修改:@Update

复杂语句一般使用配置文件

posted @ 2022-09-19 21:56  yesyes1  阅读(39)  评论(0编辑  收藏  举报