共5道题,数据库题目需要提前安装好mysql数据库,编程题以提供基础的Spring boot工程,使用maven构建,可直接运行。答题时间为30min。
- 请在本地提前安装好MySQL数据库。
- 请在本地提前安装好IntelliJ Idea.
- 请在本地提前安装好Zoom,远程接入。
- 请准备一张纸和一支笔,用来作答第一题。
-
请将本项目clone到本地:
git clone https://github.com/ZhangGangTW/grad-exam-java-web.git
-
用IntelliJ Idea导入该项目:
-
运行该项目:
请简述MVC模式的概念, MVC三部分的职责及相互之间的关系(可以画在纸上)
Database: school
Table: student
id | name | age | class |
---|---|---|---|
1 | alice | 22 | 1 |
2 | bob | 30 | 2 |
3 | charlie | 25 | 1 |
建库建表及插入数据SQL语句:
DROP SCHEMA IF EXISTS school;
CREATE SCHEMA school;
USE school;
DROP TABLE IF EXISTS student;
CREATE TABLE student
(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32) NOT NULL,
age INT NOT NULL,
class INT NOT NULL
);
INSERT INTO student VALUES(NULL, 'alice', 22, 1);
INSERT INTO student VALUES(NULL, 'bob', 30, 2);
INSERT INTO student VALUES(NULL, 'charlie', 25, 1);
题目: 分别按照如下要求查询对应的学生信息
- 查询姓名为bob的学生信息
- 查询所有年龄大于等于25岁的学生信息并按照年龄升序排序
- 查询姓名中包含字母a的学生信息
- 按照班级统计每个班级包含多少名学生
- david老师负责1班和2班的java课程
- erin老师负责1班的mysql课程
- frank老师负责2班的mysql课程
注意: 一个教师可能会教多个班级的课程, 请参考下面的查询要求思考如何合理的设计表结构
- 添加新用户
- 根据用户ID查询用户信息
- 根据用户ID删除该用户
需求:添加用户时需要校验用户名,规则是用户名不能为空,校验失败抛出InvalidUsernameException
。
(请在在已有的UserService
的addUser
方法中完成)