下面是一个完整的新增接口示例,包含控制层(Controller)、数据访问层(Mapper)、XML配置(mapper.xml)、服务接口(Service)和服务实现类(ServiceImpl)。我们以“商品管理”为例。
1. 实体类 (Product.java)
首先定义一个商品实体类:
public class Product {
private Long id;
private String name;
private Double price;
// Getters and Setters
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
}
2. Mapper 接口 (ProductMapper.java)
接下来是 Mapper 接口,用于数据库操作:
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ProductMapper {
void insertProduct(Product product);
}
3. Mapper XML 文件 (ProductMapper.xml)
然后创建对应的 ProductMapper.xml
文件,用于 SQL 配置。这个文件通常放在 resources/mappers/
目录下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-mapper-3.0.dtd">
<mapper namespace="com.example.mapper.ProductMapper">
<insert id="insertProduct">
INSERT INTO products(name, price)
VALUES(#{name}, #{price})
</insert>
</mapper>
4. 服务接口 (ProductService.java)
接下来是服务接口,定义业务逻辑的方法:
public interface ProductService {
void addProduct(Product product);
}
5. 服务实现类 (ProductServiceImpl.java)
然后是服务实现类,实现具体的业务逻辑:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ProductServiceImpl implements ProductService {
@Autowired
private ProductMapper productMapper;
@Override
public void addProduct(Product product) {
productMapper.insertProduct(product);
}
}
6. 控制层 (ProductController.java)
最后是控制层,用于处理HTTP请求和响应:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/products")
public class ProductController {
@Autowired
private ProductService productService;
@PostMapping("/add")
public ResponseEntity<String> addProduct(@RequestBody Product product) {
productService.addProduct(product);
return ResponseEntity.ok("Product added successfully");
}
}
7. 配置文件
在application.properties
中配置你的数据库连接信息,例如 MySQL 数据库:
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC
spring.datasource.username=your_username
spring.datasource.password=your_password
mybatis.mapper-locations=classpath:mappers/*.xml
总结
以上代码展示了如何实现一个简单的新增商品接口。当你向/api/products/add
发送POST请求,并附带JSON格式的商品数据时,它会调用相应的方法将新商品插入到数据库中。
例如,发送以下JSON请求体来添加产品:
{
"name": "Sample Product",
"price": 99.99
}
希望这个示例对你有所帮助!如果还有其他问题,请随时问我!
内容由零声教学AI助手提供,问题来源于学员提问