Semantic-ui
插件集成
Markdown编辑器:https://pandao.github.io/editor.md/
内容排版typo.css:https://github.com/sofish/typo.css
动画animate.css:https://animate.style/
代码高亮prism:https://prismjs.com/
目录生成Tocbot:https://tscanlin.github.io/tocbot/
二维码生成qrcode.js:https://davidshimjs.github.io/qrcodejs/
logback配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/default.xml"/>
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<appender name="TIME_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="TIME_FILE"/>
</root>
</configuration>
MyBatisPlus
快速入门
接口
package com.cs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cs.pojo.User;
import org.springframework.stereotype.Repository;
//在对应的mapper上面继承基本的接口BaseMapper
@Repository//代表持久层
public interface UserMapper extends BaseMapper<User> {
//所有的CRUD操作都已经编写完成了
}
主启动类添加
@MapperScan("com.cs.mapper")
测试类
package com.cs;
import com.cs.mapper.UserMapper;
import com.cs.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class MybatisPlusApplicationTests {
//继承了BaseMapper,所有的方法都来自父类
//也可以编写自己的扩展方法
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
//参数是一个wrapper,条件构造器,这里先用null
//查询全部用户
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}
}
查询结果为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yhokTTtJ-1605705377178)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20201111230437352.png)]
配置日志
#配置日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
CRUD扩展
//测试插入
@Test
public void testInsert(){
User user = new User();
user.setName("狂神说Java");
user.setAge(3);
user.setEmail("1318579525@qq.com");
int insert = userMapper.insert(user);//自动生成id
System.out.println(insert);//受影响的行数
System.out.println(user);//id会自动回填?
}
运行结果为
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VPTBwtHp-1605705377187)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20201111231724669.png)]
Redis
noSQL
1、单机mysql的演进
2、Memcached(缓存)+MySQL+垂直拆分(读写分离)
读写分离出来,但是网站80%都是在读,每次都要去查询数据库就十分麻烦!为了减轻数据的压力,使用缓存来保证效率
发展过程:优化数据结构和索引–>文件缓存(IO)–>Memcached(当时最热门的技术)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n5CuzER6-1605705377194)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20201115154358453.png)]
3、分库分表+水平拆分+MySQL集群
本质:数据库读写
MyISAM:表锁,十分影响效率!高并发下就会出现严重的问题
Innodb:行锁
4、最近年代
技术爆炸:2010-2020
MySQL等关系型数据库不够用了,数据量很多,变化很快
5、目前一个基本的互联网项目
6、为什么要用noSQL
用户的个人信息,社交网络,地理位置,用户自己生产的数据,用户日志等等爆发式增长
就需要使用noSQL了
什么是NoSQL?
NoSQL
不仅仅是sql;
关系型数据库:表格,以行和列来记录
泛指非关系型数据库的,使用Map<String,Object>来存储
NoSQL特点
1、方便拓展(数据之间没有关系,很好扩展)
2、大数据量高性能(Redis一秒写8万次,读取11万,NoSQL的缓存记录级,是一种细粒度的缓存,性能会比较高)
3、数据类型是多样型的!(不需要事先设计数据库!随去随用)
4、传统的RDBMS和NoSQL
传统的RDBMS
-结构化组织
-SQL
-数据和关系都存在单独的表中
-严格的一致性
-基础的事务
Nosql
-不仅仅是数据
-没有固定的查询语言
-键值对存储
-最终一致性
-CAP定理和BASE
-高性能,高可用,高可扩
了解3V+3高
大数据时代的3v:主要是描述问题的
海量Velume
多样Variety
实时Velocity
大数据时代的3高:主要是对程序的要求
高并发
高可扩
高性能
NoSQL的四大分类
kv键值对:
-
新浪:Redis
-
美团:Redis+Tair
-
阿里、百度:Redis+memecache
文档型数据库(bson格式和json一样)
- MongoDB
MongoDB是一个基于分布式文件存储的数据库,c++编写
是一个介于关系型数据库和非关系型数据库中间的产品,它是非关系型数据库中功能最丰富,最像关系型数据库的
- ConthDB
列存储数据库
- HBase
- 分布式文件系统
图关系数据库
- 他不是存图形的,放的是关系
- Neo4j,infoGri
Redis入门
概述
Remote Dictionary Server:远程字典服务
Redis能够干嘛?
1、内存存储、持久化,内存中是断电即失,所以说持久化很重要(rdb,aof)
2、效率高,可以用于高速缓存
3、发布订阅系统
4、地图信息分析
5、计时器,计数器
6、。。。。。。。
特性
1、多样的数据类型
2、持久化
3、集群
4、事务
。。。。。。
y Server:远程字典服务
Redis能够干嘛?
1、内存存储、持久化,内存中是断电即失,所以说持久化很重要(rdb,aof)
2、效率高,可以用于高速缓存
3、发布订阅系统
4、地图信息分析
5、计时器,计数器
6、。。。。。。。
特性
1、多样的数据类型
2、持久化
3、集群
4、事务
。。。。。。