Day09-作业(Mybatis)

news2025/1/6 20:05:27

作业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. 状态和分类都是精确匹配

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/820427.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++多线程基本原理详解

在C学习过程中,要想“更上一层楼”的话,多线程编程是必不可少的一步,大家需要更多的思考是为什么这么做?这样做的好处是什么?以及多线程编程都可以应用在哪里? 1、多线程 传统的C(C11标准之前…

R语言中数据重塑(长宽表的转化)

学习笔记,仅供学习使用。 目录 1-什么是整洁的数据? 2-宽表变成长表 示例1: 示例2: 示例3: 3-长表变宽表 示例1: 示例2: 1-什么是整洁的数据? 按照Hadley的表述&#xf…

我的观影记录表【个人向】

目录 前言电影评分标准闪电侠(2023)银河护卫队3(2023) 前言 这里是我本人的观影记录,这个想法2年前就有了,但是一直比较懒,现在(上班摸鱼)准备重新开始,评价…

Spring Boot Starter 剖析与实践 | 京东云技术团队

引言 对于 Java 开发人员来说,Spring 框架几乎是必不可少的。它是一个广泛用于开发企业应用程序的开源轻量级框架。近几年,Spring Boot 在传统 Spring 框架的基础上应运而生,不仅提供了 Spring 的全部功能,还使开发人员更加便捷地…

Bigemap 在网络通讯行业中的应用场景

地图应用: 使用我们软件下载地图,对影像需求是高频更新,我们软件目前的更新频率可以满足需求,实现离线地图的下载,在地图上导入数据查看和标注点位,基站信号覆盖展示数据并且导出,并且会发送到…

​​​amoeba实现MySQL读写分离

​​​amoeba实现MySQL读写分离 准备环境:主机A和主机B作主从配置,IP地址为192.168.131.129和192.168.131.130,主机C作为中间件,也就是作为代理服务器,IP地址为192.168.131.136。三台服务器操作系统为RHEL6.4 x86_64,为…

Codeforces Round 889 (Div. 2)(视频讲解A——D)

文章目录 A Dalton the TeacherB Longest Divisors IntervalC2 Dual (hard Version)D Earn or Unlock Codeforces Round 889 (Div. 2)&#xff08;视频讲解A——D&#xff09; A Dalton the Teacher #include<bits/stdc.h> #define endl \n #define INF 0x3f3f3f3f us…

自定义MVC增删改查

目录 mymvcdemo是自定义mvc框架的使用示例 1.1 实体类 1.2 dao方法 1.3 写Service / biz 三层架构 1.4 建action 相当于selvert 1.5 con连接MySQL 8.0 版本 1.6 配置文件 XML 1.7 主界面布局 1.8 增加界面布局 1.9 写tld配置文件 2.0 注意架包 我是已经打包好的 mymv…

Leetcode-每日一题【剑指 Offer 53 - I. 在排序数组中查找数字 I】

题目 统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums [5,7,7,8,8,10], target 8输出: 2 示例 2: 输入: nums [5,7,7,8,8,10], target 6输出: 0 提示&#xff1a; 0 < nums.length < 105-109 < nums[i] < 109nums 是一个非递减数组-109 < targe…

Java课题笔记~ MyBatis入门

一、ORM框架 当今企业级应用的开发环境中&#xff0c;对象和关系数据是业务实体的两种表现形式。业务实体在内存中表现为对象&#xff0c;在数据库中变现为关系数据。当采用面向对象的方法编写程序时&#xff0c;一旦需要访问数据库&#xff0c;就需要回到关系数据的访问方式&…

软件测评中心测试流程是怎样的?CMA、CNAS软件测试报告出具

软件测评中心是一个专门负责进行软件评估、测试和审查等工作的机构。在软件测评中心中&#xff0c;软件测试流程是按照一系列固定的步骤和流程进行的&#xff0c;以确保测试工作的全面性、系统性和规范性。 1、需求分析&#xff1a;在软件测评过程中&#xff0c;首先需要对软件…

经典病毒上线流量分析-Lokibot

一、概述 Lokibot于2015年面世&#xff0c;持续活跃至今&#xff0c;是一种高度危险且隐匿的恶意软件&#xff0c;旨在窃取受害主机的敏感信息&#xff0c;包括存储的密码、浏览器登录凭据以及加密货币钱包等&#xff0c;并将这些信息上送到远程C2服务器上。本文将重点针对Lok…

穷举深搜暴搜回溯剪枝(1)

一)全排列: 46. 全排列 - 力扣&#xff08;LeetCode&#xff09; 1)先画出决策树: 越详细越好&#xff0c;就是我们在进行暴力枚举这道题的过程中&#xff0c;如何不重不漏地将所有的情况全部枚举到&#xff0c;把这个思想历程给画下来&#xff0c;就可以了&#xff0c;把每一步…

【css】外边距margin

外边距中有一个属性值比较有意思&#xff1a;inherit 值&#xff0c;继承父类的属性。 <!DOCTYPE html> <html> <head> <style> div {border: 1px solid red;margin-left: 100px; }p.ex1 {margin-left: inherit; } </style> </head> <…

[React]生命周期

前言 学习React&#xff0c;生命周期很重要&#xff0c;我们了解完生命周期的各个组件&#xff0c;对写高性能组件会有很大的帮助. Ract生命周期 React 生命周期分为三种状态 1. 初始化 2.更新 3.销毁 初始化 1、getDefaultProps() 设置默认的props&#xff0c;也可以用duf…

实验笔记之——Windows下的Android环境开发搭建

好久一段时间没有进行Android开发了&#xff0c;最新在用的电脑也没有了Android studio了。为此&#xff0c;本博文记录一下最近重新搭建Android开发的过程。本博文仅为本人学习记录用&#xff08;**别看&#xff09; 之前博客也对配置Android做过记录 Android学习笔记之——A…

Mybatis高级映射及动态加载及逆向工程

目录 1.多对一 2.一对多 3.⼀对多延迟加载 4.逆向工程 1.多对一 多种⽅式&#xff0c;常⻅的包括三种&#xff1a; 第⼀种⽅式&#xff1a;⼀条SQL语句&#xff0c;级联属性映射。第⼆种⽅式&#xff1a;⼀条SQL语句&#xff0c;association。第三种⽅式&#xff1a;两条SQ…

虹科案例 | PLC如何应用于建筑的3D打印?

客户&#xff1a;Rebuild 合作伙伴&#xff1a;ASTOR 应用&#xff1a;用于建筑的大尺寸3D打印 应用产品&#xff1a;3D混凝土打印机 &#xff08;一&#xff09;应用背景 自从20世纪80年代以来&#xff0c;增材制造技术&#xff08;即3D打印&#xff09;不断发展。大部分3D打印…

flannel的三种常见模式分析

概述 大家接触flannel这种网络模式大多数可能都是从k8s中知道的&#xff0c;初始使用很少去深入了解它&#xff0c;毕竟使用它其实是很简单的。但是有时候会出现奇奇怪怪的网络问题&#xff0c;这个时候就需要我们更深入了解一下flannel这种网络模式。 Flannel是CoreOS开源的&…

【BASH】回顾与知识点梳理(四)

【BASH】回顾与知识点梳理 四 四. Bash Shell 的操作环境4.1 路径与指令搜寻顺序4.2 bash 的进站与欢迎讯息&#xff1a; /etc/issue, /etc/motd4.3 bash 的环境配置文件login与non-login shell/etc/profile (login shell 才会读)~/.bash_profile (login shell 才会读)source &…