运行环境、关键字、数据类型、运算符、方法、条件结构、循环结构、方法重载、数组
面向对象、this、[构造方法](https://so.csdn.net/so/search?q=构造方法&spm=1001.2101.3001.7020" \t "_blank)、面向对象三大特性:封装继承多态
常用API、继承和多态、集合、异常、多线程、网络编程
尚硅谷Java入门视频教程
黑马Java SE零基础入门
任务1: 通过java se知识完成学生成绩管理系统的开发,包括学生、成绩的增删改查功能。完成后由师兄检查相应源码
**注:**以上的内容不要问哪些是重点,全都是重点,没有java基础就没有上层建筑。每一个知识点必须掌握,而且要很熟悉,在学习的过程中一定要记住多做练习题,两三个肯定是不够的,每一个阶段做做项目练习,把你学的知识点串起来。推荐视频时间较长根据自身基础选择性学习,有基础的同学用一周时间快速回顾java se知识,没有基础可以适当延长学习时间。
Mysql基本概念、常用sql语句练习,jdbc基础概念,熟悉java对数据库的增删改查操作
MySQL基础语句:
select * form table_name order by id desc # 从大到小
select * form table_name order by id asc # 从小到大
select * form table_name order by id asc limit 10 # 取查询结果的前10条
select * form table_name order by id asc limit 20,10 # 取查询结果从第20条开始 往后查10条
select * form table_name order by id asc limit 10 offset 20 # 取查询结果从第20条开始 往后查10条
select * from table_name where name like "张%" # 以张开头的
select * from table_name where name like "%张%" # 包含张的
select * from table_name where name like "%张" # 以张结尾的
select * from table_name where name like "张_" # 以张开头的 两个字的
select * from table_name where name like "_浩_%" # 三个字的 并且中间是 浩 的
从左表中取出每一条记录,去右表中与所有的记录进行匹配: 匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留.
select a.id,a.name,a.sex,b.country,b.city,b.street
from student a
join addr b
on a.addrid=b.addrid;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZZv3Uvbo-1655998971134)(C:\Users\10314\AppData\Roaming\Typora\typora-user-images\image-20220410110403443.png)]
以某张表为主,取出里面的所有记录, 然后每条与另外一张表进行连接: 不管能不能匹配上条件,最终都会保留: 能匹配,正确保留; 不能匹配,其他表的字段都置空NULL。左表不管能不能匹配上条件,最终都会保留:能匹配,正确的保留; 若不能匹配,右表的字段都置NULL。
select a.id,a.name,a.addrid,b.country,b.city
from student a left join addr b
on a.addrid=b.addrid;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LymilFOU-1655998971137)(C:\Users\10314\AppData\Roaming\Typora\typora-user-images\image-20220410110420246.png)]
右外连接(右连接), 以右表为主表 右表不管能不能匹配上条件,最终都会保留:能匹配,正确的保留; 若不能匹配,左表的字段都置NULL。
select a.id,a.name,a.addrid,b.country,b.city
from student a right join addr b
on a.addrid=b.addrid;
将多个select语句的查询结果合并到一块,可以使用union和union all关键字进行操作
select 语句1
union[union 选项]
select 语句2
union|[union 选项]
select 语句n
其中union选项有两个选项可选
all:表示无论重复都输出
distinct: 去重(整个重复)(默认的)
联合查询order by的使用
select *from
(select *from student
where sex="woman"
order by score)student
union
select *from
(select *from student
where sex="man"
order by score)student ;
在查询的SQL中嵌套查询
使用in关键字可以将原表中特定列的值与子查询返回的结果集中的值进行比较
例:查询成绩大于80的学生的所有信息,
先在子查询中查出成绩大于80的结果集,然后将原成绩表中的成绩与结果集进行比较,如果存在,就输出这条学生的记录
select *
from student
where score in
(select score from student where score>80);
只包含一个单值,那么可以直接使用比较运算符连接子查询
select *
from student
where score>
(select score
from scholarship
where dengji=1);
exists: 是否存在的意思, exists子查询就是用来判断某些条件是否满足(跨表),
exists是接在where之后
exists返回的结果只有0和1.
select *
from student
where exists
(select *from student where score>90);
any关键字表示满足其中的任意一个条件,使用any关键字时,只要满足内层查询语句结果的的任意一个,就可以通过该条件来执行外层查询语句。
select *
from student
where addrid
all和any刚好是相反的,all关键字表示满足所有结果,使用all关键字,要满足内层查询语句的所有结果,才可以通过该条件来执行外层查询语句。
select *
from student
where addrid>all
(select addrid
from addr);
架构区别、cookie、session、filter
Tomcat基本概念,四大Servlet容器、与socket关系等知识点,完成静态页面的反向代理
JDBC从入门到精通视频教程
千锋Servlet教程
Tomcat从入门到精通
Tomcat快速入门教程
**注:**这部分知识以了解为主,三部分知识相辅相成熟悉其相关作用以及在实际项目开发中所处位置,在后期框架学习中遇到不理解的知识点再回到本部分进行针对性的学习。
SpringBoot基础概念、自动配置原理入门
配置文件、web开发、数据访问、junit单元测试
尚硅谷SpringBoot2零基础入门
任务1:由师兄提供具体业务场景,自行分析业务需求,使用SpringBoot框架完成后端开发。
**注:**这部分内容切记不要只看不写,只有在实际编写的过程中才能加深对相关知识点的理解。在此部分内容的学习过程中,遇到不记得的知识点要及时查漏补缺。Java框架学习完成后应能够独立的完成基础xxx管理系统的后端开发工作。
映射文件、动态sql、缓存,springboot整合mybatis
POM、坐标、仓库、熟悉Maven作用
版本控制、暂存区、本地库、版本回退
常用数据类型、配置文件、发布和订阅
User user = new User();
user.setAge(20);
user.setEmail("[email protected]");
int result = this.userMapper.insert(user);
设置id的生成策略
@TableId(type = IdType.AUTO) //指定id类型为自增长
private Long id;
根据id更新
User user = new User();
user.setId(6L); //主键
user.setAge(21); //更新的字段
//根据id更新,更新不为null的字段
this.userMapper.updateById(user);
根据条件更新
User user = new User();
user.setAge(22); //更新的字段
//更新的条件
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("id", 6);
//执行更新操作
int result = this.userMapper.update(user, wrapper);
System.out.println("result = " + result);
或者,通过UpdateWrapper进行更新:
//更新的条件以及字段
UpdateWrapper<User> wrapper = new UpdateWrapper<>();
wrapper.eq("id", 6).set("age", 23);
//执行更新操作
int result = this.userMapper.update(null, wrapper);
System.out.println("result = " + result);
deleteById
int result = this.userMapper.deleteById(6L);
System.out.println("result = " + result);
deleteByMap
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("age",20);
columnMap.put("name","张三"); //将columnMap中的元素设置为删除的条件,多个之间为and关系
int result = this.userMapper.deleteByMap(columnMap);
System.out.println("result = " + result);
delete
User user = new User();
user.setAge(20);
user.setName("张三"); //将实体对象进行包装,包装为操作条件
QueryWrapper<User> wrapper = new QueryWrapper<>(user);
int result = this.userMapper.delete(wrapper);
deleteBatchIds
int result = this.userMapper.deleteBatchIds(Arrays.asList(1L,10L,20L));
System.out.println("result = " + result);
selectById
User user = this.userMapper.selectById(2L);
System.out.println("result = " + user);
selectOne
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.eq("name", "李四");
//根据条件查询一条数据,如果结果超过一条会报错
User user = this.userMapper.selectOne(wrapper);
selectCount
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.gt("age", 23); //年龄大于23岁
Integer count = this.userMapper.selectCount(wrapper);
System.out.println("count = " + count);
selectList
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.gt("age", 23); //年龄大于23岁
List<User> users = this.userMapper.selectList(wrapper);
for (User user : users) {
System.out.println("user = " + user);
}
selectPage
QueryWrapper<User> wrapper = new QueryWrapper<User>();
wrapper.gt("age", 20); //年龄大于20岁
Page<User> page = new Page<>(1,1);
//根据条件查询数据
IPage<User> iPage = this.userMapper.selectPage(page, wrapper);
System.out.println("数据总条数:" + iPage.getTotal());
System.out.println("总页数:" + iPage.getPages());
List<User> users = iPage.getRecords();
for (User user : users) {
System.out.println("user = " + user);
}
eq 等于 =
ne 不等于 <>
gt 大于 >
ge 大于等于 >=
lt 小于 <
le 小于等于 <=
between BETWEEN 值1 AND 值2
notBetween NOT BETWEEN 值1 AND 值2
in 字段 IN (value.get(0), value.get(1), …)
notIn 字段 NOT IN (v0, v1, …)
like LIKE ‘%值%’
例: like(“name”, “王”) —> name like ‘%王%’
notLike NOT LIKE ‘%值%’
例: notLike(“name”, “王”) —> name not like ‘%王%’
likeLeft LIKE ‘%值’
例: likeLeft(“name”, “王”) —> name like ‘%王’
likeRight LIKE ‘值%’
例: likeRight(“name”, “王”) —> name like ‘王%’
orderBy 排序:ORDER BY 字段, …
例: orderBy(true, true, “id”, “name”) —> order by id ASC,name ASC
orderByAsc 排序:ORDER BY 字段, … ASC
例: orderByAsc(“id”, “name”) —> order by id ASC,name ASC
orderByDesc 排序:ORDER BY 字段, … DESC
例: orderByDesc(“id”, “name”) —> order by id DESC,name DESC
QueryWrapper<User> wrapper = new QueryWrapper<>();
//SELECT id,user_name,password,name,age,email FROM tb_user WHERE name = ? OR age = ?
wrapper.eq("name","李四").or().eq("age", 24);
List<User> users = this.userMapper.selectList(wrapper);
for (User user : users)
{
System.out.println(user);
}
在MP查询中,默认查询所有的字段,如果有需要也可以通过select方法进行指定字段
QueryWrapper<User> wrapper = new QueryWrapper<>();
//SELECT id,name,age FROM tb_user WHERE name = ? OR age = ?
wrapper.eq("name", "李四") .or() .eq("age", 24) .select("id", "name", "age");
List<User> users = this.userMapper.selectList(wrapper);
for (User user : users)
{
System.out.println(user);
}
尚硅谷MyBatis实战教程全套完整版
Maven零基础入门教程
尚硅谷Git入门到精通全套教程
Redis 6 入门到精通
**注:**这部分内容也是以了解为主,Mybatis学习springboot整合与使用操作,Maven学习其相关概念,git需要学习基本版本与仓库控制命令,包括项目拉取与上传、版本迭代、版本回退,redis学习其基本操作,学完后可尝试其与springboot结合实现项目热点数据的缓存功能。
任务1
任务内容:结合前端学习成果,单独完成前后端开发,完成前后端联调。使用git进行版本管理,项目完成后应向师兄提供项目远程仓库地址,查验学习成果。
任务要求:项目运行应当可靠、稳定,前端页面设计应当人性化。
HTML语法与基础标签、列表标签、多媒体与语义化标签、表单标签、表格标签
css3基于语法、CSS选择器、文本与字体属性、盒模型
浮动与定位、边框与圆角、背景与渐变、2D与3D转换
过渡与动画
JS语法与变量、JS基础数据类型、表达式与操作符
流程控制语句与数组
JS函数、DOM、BOM基础
上下文规则、原型链、继承、深浅克隆
前端HTML5+CSS3+移动Web全套教程
JavaScript从入门到精通
任务1: 通过前端入门基础知识完成学生成绩管理系统的开发,包括学生、成绩的增删改查功能。完成后由师兄检查相应源码
**注:**以上的内容不要问哪些是重点,全都是重点,没有前端入门基础就没有上层建筑。每一个知识点必须掌握,而且要很熟悉,在学习的过程中一定要记住多做练习题,两三个肯定是不够的,每一个阶段做做项目练习,把你学的知识点串起来。推荐视频时间较长根据自身基础选择性学习,有基础的同学用一周时间快速回顾前端入门基础知识,没有基础可以适当延长学习时间。
ES6基础知识、模板字符串与箭头函数、解构赋值、对象字面量与函数参数默认值
剩余参数与展开运算符、Set与Map数据结构、遍历器与for…of循环、ES6新增方法
Module模块、Babel与webpack
前端数据交互与HTTP协议、本地存储、Ajax&Fetch与跨域请求
移动Web开发入门、响应式布局、移动端屏幕适配、移动性能优化
尚硅谷Web前端ES6教程,涵盖ES6-ES11
HTTP协议详解
六个案例学会响应式布局
**注:**这部分知识以熟悉掌握为主,知识相辅相成熟悉其相关作用以及在实际项目开发中所处位置,在后期框架学习中遇到不理解的知识点再回到本部分进行针对性的学习。
jsx基础知识、父子组件传值
常用的生命周期、hooks、echarts集成到react框架
HOC、usememo、Redux、各种钩子函数
必学课程:尚硅谷React技术全家桶全套完整版
参考课程:
React16免费基础视频教程
React实战技术博客系统
React项目全程实录#电商项目#react+UmiJS+Antd Pro#React全套技术
**注:**这部分内容切记不要只看不写,只有在实际编写的过程中才能加深对相关知识点的理解。在此部分内容的学习过程中,遇到不记得的知识点要及时查漏补缺。React框架学习完成后应能够独立的完成基础xxx管理系统的前端开发工作。
版本控制、暂存区、本地库、版本回退
nginx相关概念、配置
尚硅谷Git入门到精通全套教程
尚硅谷Nginx教程由浅入深
**注:**这部分内容也是以了解为主,git需要学习基本版本与仓库控制命令,包括项目拉取与上传、版本迭代、版本回退。
任务1
任务内容:结合前端学习成果,单独完成前后端开发,完成前后端联调。使用git进行版本管理,项目完成后应向师兄提供项目远程仓库地址,查验学习成果。
任务要求:项目运行应当可靠、稳定,前端页面设计应当人性化。
node基础入门、node处理http
Express、Koa2与Egg框架入门、MongoDB基础入门
Node.js 系列教程之 Express
ts基础语法,类、接口以及类型
TypeScript从入门到精通视频教程
**注:**前端在学有余力的情况下学习扩展知识,提升自己的技术能力。