一、 添加操作
我们来实现⼀下⽤户的增加、删除和修改的操作,对应使⽤ MyBatis 的标签如下:
标签:插入语句
标签:修改语句
标签:删除语句
具体实现如下:
1.1 增加用户操作:
controller 实现代码:
@RequestMapping(value = "/add",method = RequestMethod.POST)
public Integer add(@RequestBody User user){
return userService.getAdd(user);
}
- 使用 @RequestMapping 注解来定义请求的路径和方法
- 使用 @RequestBody 注解来将请求体中的 JSON 数据绑定到 User 对象上。
- 调用 userService 中的getAdd()方法来处理新增用户的逻辑并返回结果
mapper interface实现代码:
Integer add(@Param("user") User user);
mapper.xml:
<insert id="add" parameterType="com.example.User">
insert into userinfo(username,password,photo,state)
values(#{username},#{password},#{photo},1);
</insert>
默认情况返回的是受影响的行号,如果想要返回自增id,具体实现如下:
controller实现代码:
@RequestMapping(value = "/add2", method = RequestMethod.POST)
public Integer add2(@RequestBody User user) {
userService.getAdd2(user);
return user.getId();}
mapper 接口:
@Mapper
public interface UserMapper{
//添加 ,返回自增id
void add2(User user);
}
mapper.xml的实现如下:
<!--
返回⾃增id -->
<insert id="add2" useGeneratedKeys="true" keyProperty="id">
insert into userinfo(username,password,photo,state)
values(#{username},#{password},#{photo},1)
</insert>
解释一下:
useGeneratedKeys:
会令MyBatis使用JDBCgetGeneratedKeys方法来取出由数据库内部生成的主键,
默认值:false
keyColumn:
设置生成键值在表中的列名,当主键不是表中第一列的时候,必须要设置,如果生成列不止一个,可以用逗号分隔多个属性名称。
keyProperty:
指定能唯一识别对象的属性,MyBatis会使用getGeneratedKeys 的返回值或insert语句的selectKey 子元素设置它的值,如果生成列不止一个,可以用逗号分隔多个属性名称。
默认值:unset
二、 修改用户操作
controller:
//修改操作
@RequestMapping("/update")
public Integer update(Integer id,String name){
return userService.update(id,name);
}
mapper.xml 实现代码:
<update id="update">
update userinfo set username=#{name} where id=#{id}
</update
>
mapper interface接口:
@Mapper
public interface UserMapper{
//修改
int update(Userinfo userinfo);
}
三、 MyBatis删除操作
mapper interface 接口代码:
int delete(@Param("id")Integer id);
mapper.xml 实现代码:
<delete id="delById" parameterType="java.lang.Integer">
delete from userinfo where id=#{id}
</delete>