springboot 注解开发接口demo

Maven配置依赖

            <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.5</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.76</version>
        </dependency>

引入 myBatis-plus,mysql和Lombok(注解工具类)

配置yml

    server:
    port: 8081
spring:
    datasource:
        url: jdbc:mysql://127.0.0.1:3306/my_test?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
        username: root
        password: root

配置项目信息和数据库连接信息

接口实现

实体类代码

package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

@Data
public class UserEntity {

    @TableId(type = IdType.AUTO)
    private Integer id;
    private String name;
    private String sex;
    private String phone;
}

@TableId标签:指定实体类中的主键字段,用于自动生成主键值;

mapper配置

@Mapper
public interface UserMapper extends BaseMapper<UserEntity> {

    @Insert("insert into user(name,sex,phone) values(#{name},#{sex},#{phone})")
    @Options(useGeneratedKeys = true,keyProperty = "id")
    int insertUser(UserEntity user);
}

@Options(useGeneratedKeys = true,keyProperty = "id"):用于指定主键生成策略,useGeneratedKeys设置是否自动生成主键值,keyProperty表示主键的属性名

service层实现

定义接口

public interface UserService extends IService<UserEntity> {

        int insertUser(UserEntity user);
}

IService:是mybatis中的一个接口,定义了service层的基本操作,提供了一些常用的方法,如增删改查;

接口实现

@Service
@RequiredArgsConstructor
@Transactional(propagation = Propagation.SUPPORTS,readOnly = true)
public class UserServicepImpl extends ServiceImpl<UserMapper,UserEntity> implements UserService {

    @Override
    public int insertUser(UserEntity user) {
        return this.baseMapper.insertUser(user);
    }
}

@RequiredArgsConstructor:Lombok中的注解,用于自动生成构造方法;
ServiceImpl:是myBatis-plus中的一个类,继承了IService接口,用于实现service层的基本操作;

Controller层实现

@Validated
@RestController
@RequestMapping("/user")
@RequiredArgsConstructor
public class UserController {

    private final UserService userService;

    @PostMapping("/insert")
    public String insertUser(@RequestBody JSONObject jsonObject){
        UserEntity userEntity =new UserEntity();
        userEntity.setName(jsonObject.getString("name"));
        userEntity.setSex(jsonObject.getString("sex"));
        userEntity.setPhone(jsonObject.getString("phone"));
        int result = userService.insertUser(userEntity);
        JSONObject resp = new JSONObject();
        if(result != 0){
            resp.put("code","200");
            resp.put("msg","成功");
        }else {
            resp.put("code","400");
            resp.put("msg","失败");
        }
        return resp.toString();
    }
}

@RequiredArgsConstructor:Lombok中的一个注解,用于自动生成构造方法;
@Validated: spring框架中的注解,用于参数校验,spring会自动根据参数类型和注解进行校验

posted @ 2023-06-01 15:54  彬哙  阅读(59)  评论(0)    收藏  举报