SpringBoot-MySQL(增)
- 数据库
首先要对数据库文件进行一定的设置
即将id列设置为主键(主键不能为空,否则会丧失其唯一的索引),同时设置自增
否则会报出id没有默认值的错误
- controller
package com.Lee.connect.controller; import com.Lee.connect.mapper.UserMapper; import com.Lee.connect.table.TableUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping(value = "/") public class UserController{ @Autowired UserMapper userMapper; @RequestMapping(value = "/getUser") @ResponseBody public Object getUser(@RequestParam("id") Integer id){ TableUser user = userMapper.getUserById(id); return user; } @RequestMapping(value = "/delUser") @ResponseBody public Object delUser(@RequestParam("id") Integer id){ userMapper.delUserById(id); return "delete finished"; } @RequestMapping(value = "/setUser") @ResponseBody public Object setUser(@RequestParam("UserName") String UserName,@RequestParam("PassWord") String PassWord,@RequestParam("id") Integer id){ TableUser user = new TableUser(); user.setId(id); user.setUserName(UserName); user.setPassWord(PassWord); userMapper.updateUser(user); return user; } @RequestMapping(value = "/addUser") @ResponseBody public Object setUser(@RequestParam("UserName") String UserName,@RequestParam("PassWord") String PassWord){ TableUser user = new TableUser(); user.setUserName(UserName); user.setPassWord(PassWord); int id = userMapper.addUser(user); return user; } }
新增了一个功能(/addUser),即为数据库添加自增的功能
此处传入了两个参数,即UserName和PassWord,也就是外界需要传入的信息
(此处没有设置id,因为传入数据的时候id是未知的)
此处新建了entity对象实例,并使用set方法对该对象实例进行了一定的设置
同时调用了mapper中的方法获得了sql语句执行之后返回的id
- mapper
package com.Lee.connect.mapper; import com.Lee.connect.table.TableUser; import org.apache.ibatis.annotations.*; import org.springframework.stereotype.Component; @Mapper @Component(value = "UserMapper") public interface UserMapper { //select @Select("select * from t1 where id=#{id}") TableUser getUserById(@Param("id") Integer id); //delete @Delete("delete from t1 where id=#{id}") void delUserById(@Param("id") Integer id); //update @Update("update t1 set UserName=#{UserName},PassWord=#{PassWord} where id=#{id}") void updateUser(TableUser user); //insert @Insert("insert into t1 (UserName,PassWord) values(#{UserName},#{PassWord})") @Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id") int addUser(TableUser User);
此处使用了@Insert来插入insert类的sql语句
同时使用@Options来进行详细设置,useGenerateKeys=True表示使用自增长的id,keyPropery用于指定自增长的键的属性,keyProperty用于指定自增长的键在数据库中的字段名
(此处数据库中字段为id,其属性也为id)
进行了如上设置,返回的id才是生成数据对应的id,否则会一直返回为0

浙公网安备 33010602011771号