总结
我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。
Mybatis源码解析
![](https://img-blog.csdnimg.cn/img_convert/431b18e2e46b6f6b2c3b67accda243db.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/f2e529186f2d7442cbd3ddd1e4016842.webp?x-oss-process=image/format,png)
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录
需要这份系统化的资料的朋友,可以点击这里获取
//账号不存在、密码错误
if(user == null || !user.getPassword().equals(new Sha256Hash(form.getPassword(), user.getSalt()).toHex())) {
return R.error("账号或密码不正确");
}
//账号锁定
if(user.getStatus() == 0){
return R.error("账号已被锁定,请联系管理员");
}
//生成token,并保存到数据库
R r = sysUserTokenService.createToken(user.getUserId());
return r;
}
/\*\*
* 退出
*/
@PostMapping(“/sys/logout”)
public R logout() {
sysUserTokenService.logout(getUserId());
return R.ok();
}
**前端VUE+element表单:**
学生信息管理登录
dataFormSubmit () {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.$http({
url: this.$http.adornUrl('/sys/login'),
method: 'post',
data: this.$http.adornData({
'username': this.dataForm.userName,
'password': this.dataForm.password,
'uuid': this.dataForm.uuid,
'captcha': this.dataForm.captcha
})
}).then(({data}) => {
if (data && data.code === 0) {
this.$cookie.set('token', data.token)
this.$router.replace({ name: 'home' })
} else {
this.getCaptcha()
this.$message.error(data.msg)
}
})
}
})
},
权限控制:
@Bean("shiroFilter")
public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
shiroFilter.setSecurityManager(securityManager);
//oauth过滤
Map<String, Filter> filters = new HashMap<>();
filters.put("oauth2", new OAuth2Filter());
shiroFilter.setFilters(filters);
Map<String, String> filterMap = new LinkedHashMap<>();
filterMap.put("/webjars/\*\*", "anon");
filterMap.put("/druid/\*\*", "anon");
filterMap.put("/app/\*\*", "anon");
filterMap.put("/sys/login", "anon");
filterMap.put("/swagger/\*\*", "anon");
filterMap.put("/v2/api-docs", "anon");
filterMap.put("/swagger-ui.html", "anon");
filterMap.put("/swagger-resources/\*\*", "anon");
filterMap.put("/captcha.jpg", "anon");
filterMap.put("/aaa.txt", "anon");
filterMap.put("/virtuel/\*\*", "anon");
filterMap.put("/\*\*", "oauth2");
shiroFilter.setFilterChainDefinitionMap(filterMap);
return shiroFilter;
}
数据库连接配置:
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/renren_students?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
initial-size: 10
max-active: 100
min-idle: 10
max-wait: 60000
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
#Oracle需要打开注释
#validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
stat-view-servlet:
enabled: true
url-pattern: /druid/\*
#login-username: admin
#login-password: admin
filter:
stat:
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: false
wall:
config:
multi-statement-allow: true
数据库表结构文档:
****数据库名:****renren_students
****文档版本:****V1.0.0
****文档描述:****数据库表设计描述
表cla
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | int | 10 | 0 | N | Y | | |
2 | name | varchar | 255 | 0 | Y | N | | |
3 | class_num | varchar | 255 | 0 | Y | N | | |
4 | user_nums | varchar | 255 | 0 | Y | N | | |
表course
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | int | 10 | 0 | N | Y | | |
2 | name | varchar | 255 | 0 | Y | N | | |
3 | teacher_num | varchar | 255 | 0 | Y | N | | |
4 | sk_time | datetime | 19 | 0 | Y | N | | |
5 | sk_place | varchar | 255 | 0 | Y | N | | |
6 | weeks_number | varchar | 255 | 0 | Y | N | | |
7 | kc_type | varchar | 255 | 0 | Y | N | | |
8 | faculty | varchar | 255 | 0 | Y | N | | |
9 | score | varchar | 255 | 0 | Y | N | | |
10 | bz | varchar | 255 | 0 | Y | N | | |
表dj_news
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | int | 10 | 0 | N | Y | | |
2 | title | varchar | 255 | 0 | Y | N | | 标题 |
3 | ty | varchar | 255 | 0 | Y | N | | 类型 |
4 | create_time | datetime | 19 | 0 | Y | N | | 发布时间 |
5 | unit | varchar | 255 | 0 | Y | N | | 发布单位 |
6 | num | varchar | 255 | 0 | Y | N | | 发布编号 |
7 | content | mediumtext | 16777215 | 0 | Y | N | | 主要内容 |
8 | create_by | varchar | 255 | 0 | Y | N | | 发布人 |
9 | bz | varchar | 255 | 0 | Y | N | | 备注信息 |
10 | kind | varchar | 255 | 0 | Y | N | | 种类(党建要闻 组织风采 ) |
表file
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | int | 10 | 0 | N | Y | | |
2 | path | varchar | 255 | 0 | Y | N | | |
3 | file_name | varchar | 255 | 0 | Y | N | | |
4 | file_type | varchar | 255 | 0 | Y | N | | |
5 | classify | varchar | 255 | 0 | Y | N | | |
6 | create_time | datetime | 19 | 0 | Y | N | | |
7 | create_by | varchar | 255 | 0 | Y | N | | |
表inform
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | int | 10 | 0 | N | Y | | |
2 | title | varchar | 255 | 0 | Y | N | | |
3 | content | text | 65535 | 0 | Y | N | | |
4 | create_time | timestamp | 19 | 0 | Y | N | CURRENT_TIMESTAMP | |
5 | create_by | varchar | 255 | 0 | Y | N | | |
6 | bz | varchar | 255 | 0 | Y | N | | |
表my_course
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | int | 10 | 0 | N | Y | | |
2 | name | varchar | 255 | 0 | Y | N | | |
3 | teacher_num | varchar | 255 | 0 | Y | N | | |
4 | sk_time | datetime | 19 | 0 | Y | N | | |
5 | sk_place | varchar | 255 | 0 | Y | N | | |
6 | weeks_number | varchar | 255 | 0 | Y | N | | |
7 | kc_type | varchar | 255 | 0 | Y | N | | |
8 | faculty | varchar | 255 | 0 | Y | N | | |
9 | score | varchar | 255 | 0 | Y | N | | |
10 | bz | varchar | 255 | 0 | Y | N | | |
11 | user_id | int | 10 | 0 | Y | N | | |
12 | user_name | varchar | 255 | 0 | Y | N | | |
13 | user_score | varchar | 255 | 0 | Y | N | | |
表student
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | int | 10 | 0 | N | Y | | |
2 | name | varchar | 255 | 0 | Y | N | | |
3 | sex | varchar | 255 | 0 | Y | N | | |
4 | birth_date | datetime | 19 | 0 | Y | N | | |
5 | ruxue_date | datetime | 19 | 0 | Y | N | | |
6 | college | varchar | 255 | 0 | Y | N | | |
7 | bz | varchar | 255 | 0 | Y | N | | |
8 | cla_name | varchar | 255 | 0 | Y | N | | |
表sys_captcha (系统验证码)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | uuid | char | 36 | 0 | N | Y | | uuid |
2 | code | varchar | 6 | 0 | N | N | | 验证码 |
3 | expire_time | datetime | 19 | 0 | Y | N | | 过期时间 |
表sys_config (系统配置信息表)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | bigint | 20 | 0 | N | Y | | |
2 | param_key | varchar | 50 | 0 | Y | N | | key |
3 | param_value | varchar | 2000 | 0 | Y | N | | value |
4 | status | tinyint | 4 | 0 | Y | N | 1 | 状态 0:隐藏 1:显示 |
5 | remark | varchar | 500 | 0 | Y | N | | 备注 |
表sys_dept (部门管理)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dept_id | bigint | 20 | 0 | N | Y | | |
2 | parent_id | bigint | 20 | 0 | Y | N | | 上级部门ID,一级部门为0 |
3 | name | varchar | 50 | 0 | Y | N | | 部门名称 |
4 | order_num | int | 10 | 0 | Y | N | | 排序 |
5 | del_flag | tinyint | 4 | 0 | Y | N | 0 | 是否删除 -1:已删除 0:正常 |
6 | remark | varchar | 255 | 0 | Y | N | | |
表sys_log (系统日志)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | bigint | 20 | 0 | N | Y | | |
2 | username | varchar | 50 | 0 | Y | N | | 用户名 |
3 | operation | varchar | 50 | 0 | Y | N | | 用户操作 |
4 | method | varchar | 200 | 0 | Y | N | | 请求方法 |
5 | params | varchar | 5000 | 0 | Y | N | | 请求参数 |
6 | time | bigint | 20 | 0 | N | N | | 执行时长(毫秒) |
7 | ip | varchar | 64 | 0 | Y | N | | IP地址 |
8 | create_date | datetime | 19 | 0 | Y | N | | 创建时间 |
表sys_menu (菜单管理)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | menu_id | bigint | 20 | 0 | N | Y | | |
2 | parent_id | bigint | 20 | 0 | Y | N | | 父菜单ID,一级菜单为0 |
3 | name | varchar | 50 | 0 | Y | N | | 菜单名称 |
4 | url | varchar | 200 | 0 | Y | N | | 菜单URL |
5 | perms | varchar | 500 | 0 | Y | N | | 授权(多个用逗号分隔,如:user:list,user:create) |
6 | type | int | 10 | 0 | Y | N | | 类型 0:目录 1:菜单 2:按钮 |
7 | icon | varchar | 50 | 0 | Y | N | | 菜单图标 |
8 | order_num | int | 10 | 0 | Y | N | | 排序 |
表sys_oss (文件上传)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | bigint | 20 | 0 | N | Y | | |
2 | url | varchar | 200 | 0 | Y | N | | URL地址 |
3 | create_date | datetime | 19 | 0 | Y | N | | 创建时间 |
表sys_role (角色)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | role_id | bigint | 20 | 0 | N | Y | | |
2 | role_name | varchar | 100 | 0 | Y | N | | 角色名称 |
3 | remark | varchar | 100 | 0 | Y | N | | 备注 |
4 | create_user_id | bigint | 20 | 0 | Y | N | | 创建者ID |
5 | create_time | datetime | 19 | 0 | Y | N | | 创建时间 |
6 | dept_id | int | 10 | 0 | Y | N | | |
表sys_role_dept (角色与部门对应关系)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | bigint | 20 | 0 | N | Y | | |
2 | role_id | bigint | 20 | 0 | Y | N | | 角色ID |
3 | dept_id | bigint | 20 | 0 | Y | N | | 部门ID |
表sys_role_menu (角色与菜单对应关系)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | bigint | 20 | 0 | N | Y | | |
2 | role_id | bigint | 20 | 0 | Y | N | | 角色ID |
3 | menu_id | bigint | 20 | 0 | Y | N | | 菜单ID |
表sys_user (系统用户)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | bigint | 20 | 0 | N | Y | | |
2 | username | varchar | 50 | 0 | N | N | | 用户名 |
3 | password | varchar | 100 | 0 | Y | N | | 密码 |
4 | salt | varchar | 20 | 0 | Y | N | | 盐 |
5 | email | varchar | 100 | 0 | Y | N | | 邮箱 |
6 | mobile | varchar | 100 | 0 | Y | N | | 手机号 |
7 | status | tinyint | 4 | 0 | Y | N | | 状态 0:禁用 1:正常 |
8 | create_user_id | bigint | 20 | 0 | Y | N | | 创建者ID |
9 | create_time | datetime | 19 | 0 | Y | N | | 创建时间 |
10 | dept_id | int | 10 | 0 | Y | N | | |
11 | stage | varchar | 255 | 0 | Y | N | | |
12 | parent_name | varchar | 255 | 0 | Y | N | | 部门名称 |
表sys_user_role (用户与角色对应关系)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | id | bigint | 20 | 0 | N | Y | | |
2 | user_id | bigint | 20 | 0 | Y | N | | 用户ID |
3 | role_id | bigint | 20 | 0 | Y | N | | 角色ID |
表sys_user_token (系统用户Token)
| | | | | | | | |
---|
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | bigint | 20 | 0 | N | Y | | |
2 | token | varchar | 100 | 0 | N | N | | token |
3 | expire_time | datetime | 19 | 0 | Y | N | | 过期时间 |
复习的面试资料
这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)
![image](https://img-blog.csdnimg.cn/img_convert/b4bfaa2c8f10e8dbd0f32d227e83f84d.webp?x-oss-process=image/format,png)
- 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)
![image](https://img-blog.csdnimg.cn/img_convert/156c207f3e6289e3d2c76466a2747a68.webp?x-oss-process=image/format,png)
- 第三部分:性能调优(JVM+MySQL+Tomcat)
![image](https://img-blog.csdnimg.cn/img_convert/b7618a97f0ddaf3ce71fb19bd9457d12.webp?x-oss-process=image/format,png)
- 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)
![image](https://img-blog.csdnimg.cn/img_convert/507319ba8013910096f0c036111bbc3f.webp?x-oss-process=image/format,png)
- 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)
![image](https://img-blog.csdnimg.cn/img_convert/af62915464f46a24b35f879e4db7bea8.webp?x-oss-process=image/format,png)
- 第六部分:其他:并发编程+设计模式+数据结构与算法+网络
![image](https://img-blog.csdnimg.cn/img_convert/dc87f4a69807ba00669aef27ced80e16.webp?x-oss-process=image/format,png)
进阶学习笔记pdf
- Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法)
![image](https://img-blog.csdnimg.cn/img_convert/d36a2d484ebf86227069eb5e2547b230.webp?x-oss-process=image/format,png)
- Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis)
![image](https://img-blog.csdnimg.cn/img_convert/5e86f440a4b6fb185a155ae6962f9211.webp?x-oss-process=image/format,png)
![image](https://img-blog.csdnimg.cn/img_convert/5cbe37306f344336d0553ebb85d5056a.webp?x-oss-process=image/format,png)
![image](https://img-blog.csdnimg.cn/img_convert/4b8877e2075dcf466a5b838eedfe0e22.webp?x-oss-process=image/format,png)
- Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka))
![image](https://img-blog.csdnimg.cn/img_convert/52b7958d6e9871717a02197e83753fc0.webp?x-oss-process=image/format,png)
![image](https://img-blog.csdnimg.cn/img_convert/88cee0708d23aa9666bee6a523303de9.webp?x-oss-process=image/format,png)
![image](https://img-blog.csdnimg.cn/img_convert/9eeb8751a66d6cc7369122dd361efece.webp?x-oss-process=image/format,png)
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
![image](https://img-blog.csdnimg.cn/img_convert/333e4ba1da960a690f1b1bd89602b027.webp?x-oss-process=image/format,png)
![image](https://img-blog.csdnimg.cn/img_convert/b8f8fd51b4d267c39a257dce8b8909fc.webp?x-oss-process=image/format,png)
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录
需要这份系统化的资料的朋友,可以点击这里获取
构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka))**
[外链图片转存中…(img-IjTkLgKP-1715490495847)]
[外链图片转存中…(img-Oa9YQI1h-1715490495847)]
[外链图片转存中…(img-8NjaRkSW-1715490495847)]
- Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
[外链图片转存中…(img-ubgL4WJt-1715490495848)]
[外链图片转存中…(img-rEIsBUAr-1715490495848)]
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录
需要这份系统化的资料的朋友,可以点击这里获取