2k_Day3:搞清楚最基本简单的crud

写一个简简单单的产品基础功能

产品基础嘛,就很单一的product表增删改查批量,字段也是很简单。
ID、产品code、标题、简介、关键词、缩略图、更新者、更新日期、排序ID、是否启动

然后,额外字段也能选择性加一加

产品类型、所属分类、详情内容、库存量、点击量、是否推荐、是否最新、是否置顶、来源、

最基础最简单,因为没包括验签、过滤、网关、均衡、空值判断、日志、异常处理。所以是最简单的。

搞清楚每层的工作:

1.简单的搞清几步

公共:

1、先引用springweb、openfeign

2、服务的包:com.shop-admin.xxx(products/order/ware/coupon)

3、统一用springBoot 2.3.1RELEASE(只要求统一)

4、复制一个pom.xml到主目录,加上modules,一起启动,方便管理。

5、每个application、application.yml、application.properties的最初始配置(sqldatasoruce、mybatiesPlus)

pom.xml

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.shopAdmin</groupId>
    <artifactId>shopAdmin</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>shopAdmin</name>
    <description>聚合服务</description>

    <packaging>pom</packaging>
<modules>
    <module>common</module>
    <module>products</module>
</modules>


java/Application.java

package com.shopadmin.products;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ProductsApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProductsApplication.class, args);
    }
}

注解加@SpringBootApplication,标记是程序启动,之前有了解到注解是个组合注解。

resources/application.properties和application.yml

# 应用服务 WEB 访问端口
server.port=8080
spring:
  datasource:
    url: jdbc:sqlserver://localhost:54416;DatabaseName=shop;encrypt=false
    username: abc
    password: 123
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
mybatis-plus:
  mapper-locations: classpath*:/mapper/**/*.xml
  global-config:
    db-config:
      id-type: auto
server:
  port: 10000

application.yml配置数据库、mybatisPlus、服务器的端口。

2.业务的分层

contorller层:

productsController.java

@RestController
@RequestMapping("produts")
public class ProdutsController {
    @Autowired
    private produtsService produtsService;
    
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,@PathVariable("Id") int oid){
        PageUtils page = produtsService.queryPage(params);
        return R.ok().put("page", page);
    }
}

接口控制器注解:@RestController、@RequestMapping("路径")

自动匹配bean注解:  @Autowired

接口入参注解:@RequestParam、@PathVariable

service层:(接口)

public interface produtsService extends IService<ProdutsEntity> 
{
    PageUtils queryPage(Map<String, Object> params);
}

service/impl:(实现类)

@Service("produtsService")
public class produtsServiceImpl extends ServiceImpl<produtsDao, produtsEntity> 
implements produtsService 
{

    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        IPage<produtsEntity> page = this.page(
                new Query<produtsEntity>().getPage(params),
                new QueryWrapper<produtsEntity>()
        );

        return new PageUtils(page);
    }

}

实现Service注解:@Service 

扩展Dao、Entity类,继承service接口

重写注解:@Override

dao层:

@Mapper
public interface produtsDao extends BaseMapper<produtsEntity> {
	
}

 扩展Entity类
映射mapper.xml注解:@Mapper

entity类:


import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

@Data
@TableName("Products")
public class produtsEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * $column.comments
	 */
	@TableId(value="id",type = IdType.AUTO)
	private Integer id;
	/**
	 * $column.comments
	 */
    @TableField(value = "producttitle")
	private String productTitle;
	/**
	 * $column.comments
	 */
	private Date inputTime;
	/**
	 * $column.comments
	 */
	private Boolean enabled;
	/**
	 * $column.comments
	 */
	private Integer orderId;
    @TableLogic
    private Integer isDelete;
	
}

@Data节省get()、set()、toString()的注解,先引用lombok
@TableName("表名")映射数据表的注解

@TableId,主键;@TableField,具体映射字段;
@TableLogic 逻辑删除状态 0未删除 1已删除

3.公共类

R.java(返回集的统一规范)

SQLFilter.java(防SQL注入、非法字符、用词)

HTMLFilter.java(过滤HTML危险访问)

Query.java(分页工具类)

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值