作业1:通过SpringBoot+Mybatis的方式完成如下学员管理的需求
页面原型:
数据准备:
-- 学员表
create table student(
id int unsigned primary key auto_increment comment 'ID,主键',
name varchar(10) not null comment '姓名',
no char(10) not null unique comment '学号',
gender tinyint unsigned not null comment '性别, 1: 男, 2: 女',
phone varchar(11) not null unique comment '手机号',
degree tinyint unsigned comment '最高学历, 1:初中, 2:高中, 3:大专, 4:本科, 5:硕士, 6:博士',
violation_count tinyint unsigned not null default 0 comment '违纪次数',
violation_score tinyint unsigned not null default 0 comment '违纪扣分',
class_id int unsigned not null comment '班级ID, 关联班级表ID',
create_time datetime not null comment '创建时间',
update_time datetime not null comment '修改时间'
) comment '学员表';
insert into student(name, no, gender, phone, degree, class_id, create_time, update_time)VALUES
('段誉','2022000001',1,'18800000001',1,1,now(),now()),
('萧峰','2022000002',1,'18800210003',2,1,now(),now()),
('虚竹','2022000003',1,'18800013001',2,1,now(),now()),
('萧远山','2022000004',1,'18800003211',3,1,now(),now()),
('阿朱','2022000005',2,'18800160002',4,1,now(),now()),
('阿紫','2022000006',2,'18800000034',4,2,now(),now()),
('游坦之','2022000007',1,'18800000067',4,2,now(),now()),
('康敏','2022000008',2,'18800000077',5,2,now(),now()),
('徐长老','2022000009',1,'18800000341',3,2,now(),now()),
('云中鹤','2022000010',1,'18800006571',2,2,now(),now()),
('钟万仇','2022000011',1,'18800000391',4,3,now(),now()),
('崔百泉','2022000012',1,'18800000781',4,3,now(),now()),
('耶律洪基','2022000013',1,'18800008901',4,3,now(),now()),
('天山童姥','2022000014',2,'18800009201',4,3,now(),now()),
('刘竹庄','2022000015',1,'18800009401',3,4,now(),now()),
('李春来','2022000016',1,'18800008501',4,4,now(),now()),
('王语嫣','2022000017',2,'18800007601',2,4,now(),now());
操作:
-
创建新的 springboot工程 ,勾选mybatis、mysql驱动、lombok工具包的依赖。
-
配置mybatis的配置信息,包括数据库链接配置、日志配置、驼峰命名映射开关。
-
配置mybatis的配置信息,包括数据库链接配置、日志配置、驼峰命名映射开关。
-
定义与student表对应的实体类 Student 【属性名使用驼峰命名】,并创建Mapper接口 StudentMapper。
需求:
-
新增学生信息 【定义mapper方法,往student表中插入数据】。
-
根据指定 ID 查询学生信息。
-
定义StudentMapper接口对应的XML映射配置文件,根据指定的ID 动态修改学生的信息。【动态SQL】
-
根据条件,动态查询学生信息,查询条件包括:学生姓名、学号、最高学历、班级 。 查询规则如下: 【动态SQL】
-
姓名,支持模糊匹配
-
学号、最高学历、班级都是精确匹配
-
作业2:通过SpringBoot+Mybatis的方式完成如下套餐管理的需求
页面原型:
数据准备:
--
-- Table structure for table `category`
--
DROP TABLE IF EXISTS `category`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `category` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`type` int DEFAULT NULL COMMENT '类型 1 菜品分类 2 套餐分类',
`name` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '分类名称',
`sort` int NOT NULL DEFAULT '0' COMMENT '顺序',
`status` int DEFAULT NULL COMMENT '分类状态 0:禁用,1:启用',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_user` bigint DEFAULT NULL COMMENT '创建人',
`update_user` bigint DEFAULT NULL COMMENT '修改人',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_category_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin COMMENT='菜品及套餐分类';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `category`
--
/*!40000 ALTER TABLE `category` DISABLE KEYS */;
INSERT INTO `category` VALUES (11,1,'酒水饮料',10,1,'2022-06-09 22:09:18','2022-06-09 22:09:18',1,1);
INSERT INTO `category` VALUES (12,1,'传统主食',9,1,'2022-06-09 22:09:32','2022-06-09 22:18:53',1,1);
INSERT INTO `category` VALUES (13,2,'人气套餐',12,1,'2022-06-09 22:11:38','2022-06-10 11:04:40',1,1);
INSERT INTO `category` VALUES (15,2,'商务套餐',13,1,'2022-06-09 22:14:10','2022-06-10 11:04:48',1,1);
INSERT INTO `category` VALUES (16,1,'蜀味烤鱼',4,1,'2022-06-09 22:15:37','2022-08-31 14:27:25',1,1);
INSERT INTO `category` VALUES (17,1,'蜀味牛蛙',5,1,'2022-06-09 22:16:14','2022-08-31 14:39:44',1,1);
INSERT INTO `category` VALUES (18,1,'特色蒸菜',6,1,'2022-06-09 22:17:42','2022-06-09 22:17:42',1,1);
INSERT INTO `category` VALUES (19,1,'新鲜时蔬',7,1,'2022-06-09 22:18:12','2022-06-09 22:18:28',1,1);
INSERT INTO `category` VALUES (20,1,'水煮鱼',8,1,'2022-06-09 22:22:29','2022-06-09 22:23:45',1,1);
INSERT INTO `category` VALUES (21,1,'汤类',11,1,'2022-06-10 10:51:47','2022-06-10 10:51:47',1,1);
--
-- Table structure for table `setmeal`
--
DROP TABLE IF EXISTS `setmeal`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `setmeal` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`category_id` bigint NOT NULL COMMENT '菜品分类id',
`name` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '套餐名称',
`price` decimal(10,2) NOT NULL COMMENT '套餐价格',
`status` int DEFAULT '1' COMMENT '售卖状态 0:停售 1:起售',
`description` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '描述信息',
`image` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '图片',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`create_user` bigint DEFAULT NULL COMMENT '创建人',
`update_user` bigint DEFAULT NULL COMMENT '修改人',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_setmeal_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin COMMENT='套餐';
/*!40101 SET character_set_client = @saved_cs_client */;
实体类:
public class Category implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
//类型: 1菜品分类 2套餐分类
private Integer type;
//分类名称
private String name;
//顺序
private Integer sort;
//分类状态 0标识禁用 1表示启用
private Integer status;
//创建时间
private LocalDateTime createTime;
//更新时间
private LocalDateTime updateTime;
//创建人
private Long createUser;
//修改人
private Long updateUser;
}
public class Setmeal implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
//分类id
private Long categoryId;
//套餐名称
private String name;
//套餐价格
private BigDecimal price;
//状态 0:停用 1:启用
private Integer status;
//描述信息
private String description;
//图片
private String image;
private LocalDateTime createTime;
private LocalDateTime updateTime;
private Long createUser;
private Long updateUser;
}
操作:
-
创建新的 springboot工程 ,勾选mybatis、mysql驱动、lombok工具包的依赖。
-
配置mybatis的配置信息,包括数据库链接配置、日志配置、驼峰命名映射开关。
-
配置mybatis的配置信息,包括数据库链接配置、日志配置、驼峰命名映射开关。
-
创建持久层接口和映射文件。
需求:
-
新增套餐信息 【定义mapper方法,往setmeal表中插入数据】。
-
根据指定 ID 查询套餐信息。
-
定义SetmealMapper接口对应的XML映射配置文件,根据指定的ID 动态修改套餐的信息。【动态SQL】
-
根据条件,动态查询套餐信息,查询条件包括:套餐名称、状态、分类: 【动态SQL】
-
套餐名称,支持模糊匹配
-
状态和分类都是精确匹配
-