Loading

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

 

posted @ 2020-11-12 00:02  lixin2020  阅读(444)  评论(0)    收藏  举报