安全:不发生脏读、幻读、不可重复读。
幂等:操作后对数据库没有影响。
1.根据id查询
/*第一种*/
@Query(value = "select * from tb_problem where id=?",nativeQuery = true)
public List showById(String problemId);
/*第二种*/
public List queryById(String problemId);
public List findByIdOrTitle(String id,String title);
2.动态条件查询
2.1
public Page
2.2
/*一个?有相对应的参数*/
// @Query(value = "select * from tb_problem where id=?1 or title=?2",nativeQuery = true)
// public List showByCondition(String id,String title);
/*太复杂了 jpa 中判断是否为空 不是 != null 而是 != '' ,1=1 则让程序继续执行下去*/
@Query(value = "select * from tb_problem where if(?#{#problem.id}!='',id=?#{#problem.id},1=1) and if(?#{#problem.title}!='',title=?#{#problem.title},1=1)",nativeQuery = true)
public List showByCondition(Problem problem);
1.mongdb安装和下载(第三章):https://www.cnblogs.com/beyang/p/9889577.html
Java操作MongoDB数据库CRUD(增删查改)
https://blog.csdn.net/sinat_34045444/article/details/84675514
MongoDB设置用户名密码登录:https://www.jianshu.com/p/e41a563fe7a4
MongoDB 4.X 用户和角色权限管理总结:https://www.cnblogs.com/dbabd/p/10811523.html
2.本地部署easy-mock
windown系统:https://github.com/easy-mock/easy-mock/blob/dev/README.zh-CN.md
linux:前端第二章
Element前端模块:https://blog.csdn.net/Eknaij/article/details/93619279?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
注意点:更新时,如果找不到数据,则增加数据,否则更新数据
完成Head插件安装(Elasticsearch的图形化界面),熟悉Head插件的基本使用方法
完成IK分词器的安装,能够使用IK分词器进行分词
使用SpringDataElasticsearch完成搜索微服务的开发(重点)
使用logstash完成mysql与Elasticsearch的同步工作
/*
* indexName相当索引(数据库名)
* type相当数据库表
* @Field相当数据的行
* */
@Document(indexName = "arti",type = "arti")
public class Article implements Serializable {
@Id
private String id;
//是否索引,就是看该域是否能被搜索。
//是否分词,就表示搜索的时候就是整体匹配还是单词匹配
//是否存储,就是是否在页面上显示
@Field(index= true,analyzer="ik_max_word",searchAnalyzer="ik_max_word")
private String title;
查询速度从高到底:Kafka(只适应大数据),RabbitMQ,ActiveMQ,(安全性反之)
常用的使用场景:异步处理,应用解耦,流量削锋和消 息通讯四个场景
模式有三种:直接模式、分裂模式、主题模式
Java操作RabbitMQ队列:https://blog.csdn.net/why15732625998/article/details/81264323