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会自动根据参数类型和注解进行校验

浙公网安备 33010602011771号