用java spring代码分层设计新增商品的功能
时间: 2024-05-04 13:17:53 浏览: 19
好的,下面是一个简单的Java Spring代码分层设计示例,用于实现新增商品的功能。
首先,我们需要定义一个商品实体类,包含商品的基本属性:
```
public class Product {
private int id;
private String name;
private String description;
private double price;
// getters and setters
}
```
接下来,我们需要创建一个数据访问对象(DAO)接口,用于定义商品数据的访问方法:
```
public interface ProductDAO {
List<Product> getAllProducts();
Product getProductById(int id);
void addProduct(Product product);
void updateProduct(Product product);
void deleteProduct(int id);
}
```
然后,我们创建一个实现上述DAO接口的类,用于实现具体的数据访问逻辑:
```
@Repository
public class ProductDAOImpl implements ProductDAO {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<Product> getAllProducts() {
String sql = "SELECT * FROM products";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Product.class));
}
@Override
public Product getProductById(int id) {
String sql = "SELECT * FROM products WHERE id = ?";
return jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(Product.class), id);
}
@Override
public void addProduct(Product product) {
String sql = "INSERT INTO products (name, description, price) VALUES (?, ?, ?)";
jdbcTemplate.update(sql, product.getName(), product.getDescription(), product.getPrice());
}
@Override
public void updateProduct(Product product) {
String sql = "UPDATE products SET name = ?, description = ?, price = ? WHERE id = ?";
jdbcTemplate.update(sql, product.getName(), product.getDescription(), product.getPrice(), product.getId());
}
@Override
public void deleteProduct(int id) {
String sql = "DELETE FROM products WHERE id = ?";
jdbcTemplate.update(sql, id);
}
}
```
接下来,我们创建一个服务层(Service)接口,用于定义商品业务逻辑的方法:
```
public interface ProductService {
List<Product> getAllProducts();
Product getProductById(int id);
void addProduct(Product product);
void updateProduct(Product product);
void deleteProduct(int id);
}
```
然后,我们创建一个实现上述Service接口的类,用于实现具体的业务逻辑:
```
@Service
public class ProductServiceImpl implements ProductService {
@Autowired
private ProductDAO productDAO;
@Override
public List<Product> getAllProducts() {
return productDAO.getAllProducts();
}
@Override
public Product getProductById(int id) {
return productDAO.getProductById(id);
}
@Override
public void addProduct(Product product) {
productDAO.addProduct(product);
}
@Override
public void updateProduct(Product product) {
productDAO.updateProduct(product);
}
@Override
public void deleteProduct(int id) {
productDAO.deleteProduct(id);
}
}
```
最后,我们创建一个控制器(Controller)类,用于处理HTTP请求并调用Service层的方法:
```
@RestController
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductService productService;
@GetMapping("")
public List<Product> getAllProducts() {
return productService.getAllProducts();
}
@GetMapping("/{id}")
public Product getProductById(@PathVariable("id") int id) {
return productService.getProductById(id);
}
@PostMapping("")
public void addProduct(@RequestBody Product product) {
productService.addProduct(product);
}
@PutMapping("/{id}")
public void updateProduct(@PathVariable("id") int id, @RequestBody Product product) {
product.setId(id);
productService.updateProduct(product);
}
@DeleteMapping("/{id}")
public void deleteProduct(@PathVariable("id") int id) {
productService.deleteProduct(id);
}
}
```
以上就是一个简单的Java Spring代码分层设计示例,用于实现新增商品的功能。其中,我们通过DAO、Service和Controller三层来分离数据访问、业务逻辑和控制器层,使得代码更加清晰、易于维护。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)