【SpringBoot】
1. IDEA 新建 SpringBoot 项目没有Spring Initializer
File -> Settings -> Plugins
搜索Spring Initializer,点击安装
2. 新建Spring Boot项目
File -> New -> Project -> Spring Initializer
3. application.properties 和 application.yml 的区别
区别:.yml文件比较结构化一点。
可以手动将.properties 改成 .yml
4. IDEA 启动SpringBoot 项目后自动停止
- 删掉.idea目录,然后重启(File -> Invalidata Caches)
- 当有maven、plugin的时候,删掉重启后启动类的左下角会有一个标着J的红色圈圈,这个时候表示maven、plugin正在重新下载;重新下载完毕后再次run启动类即可。(。。算了,没事别乱删,重启之后你还要等它重新下载,你会抓狂。。)
5. IDEA SpringBoot 项目的 .idea文件夹
- 文件夹前面有个点.表示隐藏文件,是idea自动创建的目录
- 该目录为idea所使用的工程文件目录,有时打开别的工程存在问题时,可以通过删除.idea目录再重启(File -> Invalidata Caches)idea得到解决。
6. pom.xml文件导入jar包时,显示红色
- 试着清掉缓存然后重启IDEA,等待一段时间,让它下载完
7. 在复刻项目的时候,代码好多标红怎么办?
- 不慌是不可能的,慌完之后检查一下需要的包是否已经导入了,没有的话import一下
【SpringBoot 注解】
- @Autowired
【Shiro】
是什么: 一个安全框架
功能:
- 身份验证 Authentication:验证用户是否拥有响应的身份。
- 授权 Authorization:权限验证。
- 会话管理 Session Manager:用户登录到退出前是一次会话,shrio可以管理这次会话的生命周期中产生的数据。
- 加密 Cryptography:保护数据的安全性,如将密码存入数据库时是加密存储,不会明文存储。
【JWT】
全称:JSON Web Token
使用场景:在授权和信息交换时,将信息以 JSON 对象的形式进行传输。
【Redis】
- 是一个中间件:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
【Mybatis】
- 操作数据库的
- Mybatis 是一个持久化框架,对比JDBC 要优秀一些,它能对操作数据库的过程进行封装,使我们只需关注sql本身即可,提高了开发效率。
【Postman】
【Mysql】
1. 创建表
2. 删除表
- 删除表的内容和表本身:drop table table_name;
3. 插入数据
INSERT INTO m_user VALUES
('1', 'myname', '', NULL, '12345hygtrew', '0', '2022-04-09 21:48:50', NULL);
4. 查看表的内容
SELECT * from table_name
5. 显示mysql版本
SHOW VARIABLES LIKE 'innodb_version'
各类报错
1. 自增长问题
报错:
/* SQL Error (1075): Incorrect table definition;
there can be only one auto column and it must be defined as a key */
解决:在自增长的表项前面加入primary key关键字
CREATE TABLE m_uuserrr(
id BIGINT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT
);
2. 建表时,最后一个表项的末尾不需要加逗号,否则会报错
正确的语法如下:
CREATE TABLE m_uuuserrr(
id BIGINT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(64) DEFAULT NULL
);
3. 数据库建表时,设置时间戳报错
报错信息:
/* SQL Error (1294): Invalid ON UPDATE clause for 'created' column */
报错语句:
CREATE TABLE m_blog(
id BIGINT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,
created DATETIME NOT NULL ON UPDATE CURRENT_TIMESTAMP
) ENGINE=INNODB AUTO_INCREMENT=11 DEFAULT CHARSET=UTF8MB4;
原因:mysql版本太低(当前为5.5.62)
解决:
- 升级mysql版本(暂时还不想升级)
- 借助触发器trigger
‘ON UPDATE CURRENT_TIMESTAMP’ 删掉,然后在建表语句的末尾添加4行代码(这个时候表建成了,但还是有报错,先不追究了)
CREATE TABLE m_blog3(
id BIGINT(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,
created_time DATETIME NOT NULL
) ENGINE=INNODB AUTO_INCREMENT=11 DEFAULT CHARSET=UTF8MB4;
DELEMITER//
CREATE TRIGGER m_blog3 BEFORE UPDATE ON 'm_blog'
FOR EACH ROW SET new.created_time = NOW()
DELEMITER ;