类型参数约束 : Controller where T : class,new()

本文介绍了.NET中类型参数约束的基本概念及五种主要约束条件:结构类型约束、类类型约束、无参构造函数约束、基类约束及接口约束,并对每种约束进行了详细解释。
这是类型参数约束,.NET支持的类型参数约束有以下五种:
where T : struct                               | T必须是一个结构类型
where T : class                               | T必须是一个类(class)类型,不能是结构(structure)类型
where T : new()                               | T必须要有一个无参构造函数
where T : NameOfBaseClass          | T必须继承名为NameOfBaseClass的类
where T : NameOfInterface             | T必须实现名为NameOfInterface的接口
一、题目背景​ 设计并实现一个商品-类型管理系统,基于 Spring Boot + MyBatis Plus + HTML 前后端分离架构,实现商品信息管理与商品类型管理功能。核心要求包括:商品/类型的增删改查、商品-类型联合查询​(查询商品及其所属类型)、分页展示等。 ​二、技术栈要求​ 后端:Spring Boot 2.x、MyBatis Plus 3.x、MySQL 8.x、Spring MVC、Lombok 前端:HTML5、Bootstrap 5、Axios(异步请求) 数据库:MySQL(需创建商品类型表、商品表) ​三、需求说明​ ​1. 数据库设计(需手写建表 SQL)​​ 设计2张表实现商品与类型的多对一关联​(一个商品属于一个类型,一个类型可对应多个商品): (1)商品类型表 t_product_type 字段名 类型 说明 约束 id BIGINT 主键ID 自增、非空 type_name VARCHAR(50) 类型名称(如“电子产品”) 非空、唯一 description VARCHAR(100) 类型描述 可为空 create_time DATETIME 创建时间 非空、默认当前时间 (2)商品表 t_product 字段名 类型 说明 约束 id BIGINT 主键ID 自增、非空 product_name VARCHAR(100) 商品名称 非空、唯一 price DECIMAL(10,2) 商品价格 非空、>0 stock INT 库存数量 非空、≥0 type_id BIGINT 商品类型ID 非空、外键关联t_product_type.id create_time DATETIME 创建时间 非空、默认当前时间 update_time DATETIME 更新时间 非空、默认当前时间 ​2. 后端功能要求​ ​核心扩展:商品-类型联合查询​(查询商品及其所属类型名称) ​实体类设计​: ProductType Product ​Mapper 接口​: ProductTypeMapper:实现类型的 CRUD。 ProductMapper: ​自定义联合查询方法​(如selectProductWithType),查询商品及其类型名称。 ​Service 层​: ProductTypeService:处理类型的增删改查。 ProductService:封装联合查询逻辑(调用ProductMapper的联合查询方法)。 ​Controller 层​: 提供以下接口: 分页查询商品及其类型参数:页码、每页大小、商品名称关键字) 添加商品(需关联类型ID,校验类型是否存在)。 修改商品(更新商品信息及类型关联)。 删除商品(逻辑删除,或物理删除)。 类型的增删改查(如获取所有类型列表,供前端下拉框使用)。 ​联合查询实现要求​: 需使用 MyBatis Plus 实现多表关联查询​(任选其一): 方式1:@Select注解写 SQL(示例): 复制 SELECT p.*, pt.type_name FROM t_product p LEFT JOIN t_product_type pt ON p.type_id = pt.id WHERE p.product_name LIKE CONCAT('%', #{keyword}, '%') LIMIT #{page.current}, #{page.size} 方式2:XML 映射文件写动态 SQL(更灵活,推荐)。 ​3. 前端功能要求​ ​商品列表页​: 表格展示商品信息(名称、价格、库存、所属类型),支持按商品名称搜索。 分页导航(上一页/下一页/跳转),显示总记录数。 操作列:“编辑”(修改商品信息及类型)、“删除”(确认后删除)。 ​添加/编辑商品页​: 表单包含:商品名称(非空)、价格(>0)、库存(≥0)、类型选择(下拉框,从后端获取类型列表)​。 ​类型管理页​: 展示所有商品类型,支持添加、编辑、删除类型(删除前校验是否有商品关联)。 ​四、提交要求​ 完整 Maven 项目源码(含pom.xml依赖)。 数据库初始化 SQL(包含t_product_type、t_product两张表)。 关键代码注释: 联合查询的 SQL/MyBatis Plus 实现。 商品与类型关联的逻辑(如添加商品时校验类型存在)。 功能演示: 展示商品列表的联合查询结果(商品+类型) 演示“添加商品”时选择类型的流程。
最新发布
11-24
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值