tools used in the project
- Mybatis -> Mybatis plus
热部署 - devtools
幂等
- 定义:无论对某一个资源操作了多少次,其影响都应是相同的
- 在接口重复调用的情况下,对系统产生的影响是一样的,但是返回值允许不同,如查询
- 第一次操作产生影响后,以后多次操作不会再产生影响
- https://zhuanlan.zhihu.com/p/354938800
Mybatis 和 Hibernate 的差别
- Hibernate 是将 java classes 映射到数据库;而 Mybatis 是将 SQL 语句映射到 java的方法中
- Mybatis 是通过 XML 或者注解的方法来配置需要运行的 SQL 语句,就是 Mybatis 要自己编写所用到的 Mysql 语句,就使得其有较高的灵活性,想要拿什么数据就拿对应的数据,那么就是说要根据不同的数据库改变
- Hibernate 是直接操作对象来实现数据的写入修改,无需直接编写 SQL 语句,那么就能做到数据库无关性\
mysql - mongdb - redis
- 关系型数据库:mysql;非关系行数据库:mongdb & redis
- mongdb: 更灵活,非关系型数据库中比较像关系型数据库的,对于写入数据库的内容没有太多的限制,任何结构的文档数据都可以写入同一个集合中
- redis:
- redis 的特点:数据存储在内存中,读写速度非常快;单进程单线程,所以是线程安全的,采用IO多路复用机制;支持数据持久化,可以将内存中的数据保存到磁盘中去,重启时加载
- redis 在 java 中的应用 -> 缓存
- 考虑是否使用缓存的因素:1)该业务数据常用吗?命中率是多少?2)该业务数据的读操作多?还是写操作多?3)该业务数据有多大?过大的数据不适宜放到缓存中
- redis 在 java 中的应用 -> 高速读写
- https://zhuanlan.zhihu.com/p/37982685(redis 的特点)
- https://zhuanlan.zhihu.com/p/118561398(redis 的应用)
在开发的过程中有遇到什么问题?
并发