Day09-作业(Mybatis)

文章提供了两个作业,分别涉及学生管理和套餐管理。使用SpringBoot和Mybatis框架,完成了数据表创建、数据插入、以及相应的增删改查功能。学生管理包括学生信息的插入、查询和更新,套餐管理则涉及到套餐分类和套餐信息的维护。作业强调了动态SQL在查询条件中的应用,如模糊匹配和精确匹配。
摘要由CSDN通过智能技术生成

作业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());

操作:

  1. 创建新的 springboot工程 ,勾选mybatis、mysql驱动、lombok工具包的依赖。

  2. 配置mybatis的配置信息,包括数据库链接配置、日志配置、驼峰命名映射开关。

  3. 配置mybatis的配置信息,包括数据库链接配置、日志配置、驼峰命名映射开关。

  4. 定义与student表对应的实体类 Student 【属性名使用驼峰命名】,并创建Mapper接口 StudentMapper。

需求:

  1. 新增学生信息 【定义mapper方法,往student表中插入数据】。

  2. 根据指定 ID 查询学生信息。

  3. 定义StudentMapper接口对应的XML映射配置文件,根据指定的ID 动态修改学生的信息。【动态SQL】

  4. 根据条件,动态查询学生信息,查询条件包括:学生姓名、学号、最高学历、班级 。 查询规则如下: 【动态SQL】

    1. 姓名,支持模糊匹配

    2. 学号、最高学历、班级都是精确匹配


作业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;
}

操作:

  1. 创建新的 springboot工程 ,勾选mybatis、mysql驱动、lombok工具包的依赖。

  2. 配置mybatis的配置信息,包括数据库链接配置、日志配置、驼峰命名映射开关。

  3. 配置mybatis的配置信息,包括数据库链接配置、日志配置、驼峰命名映射开关。

  4. 创建持久层接口和映射文件。

需求:

  1. 新增套餐信息 【定义mapper方法,往setmeal表中插入数据】。

  2. 根据指定 ID 查询套餐信息。

  3. 定义SetmealMapper接口对应的XML映射配置文件,根据指定的ID 动态修改套餐的信息。【动态SQL】

  4. 根据条件,动态查询套餐信息,查询条件包括:套餐名称、状态、分类: 【动态SQL】

    1. 套餐名称,支持模糊匹配

    2. 状态和分类都是精确匹配

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穿城大饼

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值