- 博客(154)
- 收藏
- 关注
原创 mysql 一些知识点 面试用
REPEATABLE-READ(可重复读) :对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。READ-UNCOMMITTED(读取未提交) :最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。READ-COMMITTED(读取已提交) :允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。②刚开始采用快照读,但是后来执行了DML语句,又执行快照读,则也会出现幻读。
2024-08-16 11:20:42
469
原创 韩顺平 集合
这里好像理解了老师前面说的,为什么不用数组,用集合,比如数组的话,它的容量是固定的,我们增加或删除都会比较麻烦,但是随机访问比较方便。任何一个实现Collection接口的对象,都可以通过iterator()方法获得一个迭代器对象,通过该迭代器对象可以遍历集合内容。在调用next()方法前,都要先执行hasNext()来判断是否有下一个对象,如果不判断,可能会出现空指针异常。Map实现 接口的实现子类是双列集合,存放的是K-V。有两个常用方法,hasNext()和next()
2024-08-15 19:30:11
818
原创 苍穹外卖 完结
主要前端需要的有一个分类名称 这是DIsh里边没有的,我们需要根据分类id找到分类名称,二表连接。命名为categoryName 是因为我们的VO里就是该名称,mybatis可以帮我们set进去。即可上传到服务器 并且将地址回显给前端 前端通过src就能显示照片了。属性类 可以通过在properties中根据前缀名称匹配到。配置类 项目启动时把工具类加载进来 只有一个即可。但是每个菜品都要查询一次数据库 查询名称 耗时。第一种方法 只用查询一次即可。这里我本来使用的是这个方法。
2024-07-07 16:24:42
361
原创 java 公共字段填充
import com/*** @Description 自定义填充注解/*** @Description 自定义填充注解/*** @Description 自定义填充注解/*** @Description 自定义填充注解/*** @Description 自定义填充注解/*** @Description 自定义填充注解/*** @Description 自定义填充注解。
2024-07-07 10:04:09
478
原创 reggie外卖优化
在这个例子中,value 参数指定了缓存名称,而 key 参数定义了缓存键的生成规则,这里使用SpEL表达式表示传入方法的参数值。首先在用户请求验证码,将验证码保存在sesion中,当登录成功之后,将redis中的验证码删除掉。如果我们不放入redis,就会导致每次发送ajax请求,都需要去查询数据库,造成很大负担。我们可以先去redis中查询,如果没有,再去数据库中查,如果有则直接返回。还有就是更新和保存的时候,要把redis中的数据清空,保证数据一致性。如果导入redis 则使用redis的。
2024-07-03 20:43:22
447
原创 idea一些bug
push之后 我们可以在本地mater分支的基础上创建分支,然后在该创建的分支上修改我们的代码,做后续修改,如果后续发现修改没错,可以将该修改的代码merge到master上。链接: 点击下载:https://www.visualsvn.com/files/Apache-Subversion-1.9.2.zip.导致项目变成一个普通项目而不是maven管理的了,解决方法。如果我们在本地写了一个项目,想要上传到远端代码仓库比如github。看一下是否项目不受maven管理了…之后我们可以push我们的代码。
2024-07-03 17:15:52
367
原创 idea集成git
之后我们可以在项目下创建本地仓库,可以选择在哪个文件夹下创建,也就是工作区的位置。记得通过验证,否则push时会一直不成功,其实后期push也会提示。commit时可以同时push,可以选择push到远程哪个分支上。其实当有了git仓库之后,idea上边就会有标识。如果vsc中没有版本控制 参考以下博文。在idea中 配置上我们的git工具。我没有用token而是验证的。切换到当前分支之后,可以merge。可以创建新分支,也可以切换分支。也可以将远程仓库的pull下来。git右下角会显示当前分支。
2024-07-03 11:22:46
457
原创 springboot 整合redis
如果一个主机宕机,虽然再服务器redis上已经从机上机了,故障迁移成功,但是java服务器。如果在redis中 要显示中文 可以在后边加上–raw 如果还不是中文 可以先输入。springboot3 整合swagger2和3时都会报错,可以看上边博客。springboot可以整合的,lettuce其实就被整合到了这个包里。如果我们想要是我们存储的 可以使用。可以在这里直接进行http请求。并不是我们存储的ord+序号。之后我们进入swagger。并没有检测到最新的消息。
2024-06-23 17:28:51
1012
原创 瑞吉外卖问题(待更新...
注解给忘记了,通过该注解可以配置一个全局的信息,其中有一个属性是annotations,: 允许你指定一个或多个类(类型数组),只有继承或实现了这些类的控制器才会受到此 advice 影响。@RequestBody: 提取的数据可以是复杂类型,如自定义的Java对象、Map、List等,通常是用于反序列化JSON或XML数据为Java对象。@RequestBody: 通常用于处理POST请求中的非表单数据,例如JSON格式的数据,或者XML格式的数据。导致我点击登录后,还是一直在登录页面,进不去主页面。
2024-06-23 10:09:11
487
原创 redis之集群
主从复制时,当主节点宕机了,从节点并不能自动升级为主节点,所以出现了哨兵,哨兵可以帮助我们选择一个从节点上位,但是哨兵有一个缺点就是它只有一个主结点,扩容缩容不方便,主节点压力大,集群可以让我们有多个主节点和从节点。redis集群槽有16384个哈希槽,每个key通过CRC16校验后来决定放入哪个槽,集群的每个结点负责一部分哈希槽。也就是在数据放入到结点之前加了一步槽的概念,先确定槽,把数据放到对应槽上,在确定放到哪个节点上。当我们后续槽进行重新分配时,上边的数据也会跟着移动。
2024-06-20 10:39:50
905
原创 redis 笔记2之哨兵
上篇说了复制,有个缺点就是主机宕机之后,从机只会原地待命,并不能升级为主机,这就不能保证对外服务了,所以出现了哨兵,来监控主机和从机的状态。
2024-06-13 10:55:10
559
原创 redis 一些笔记1
但是这都是建立在是在配置文件中写死了主从关系的,如果使用slaveof 主库IP 主库端口 一般在命令行执行 在命令行执行的话,从机shutdown之后,主从关系就没有了。2 主机先开启并且已经有数据了,这时候从机才连上,不要紧,从机会有一个主机的完整快照,以便与主机数据一致,并且从机如果原始有数据的话,会被主机的内容覆盖掉。监控就有sql事务的意思了,如果监控的值改变了,则所有都不执行在。一主几从的话,主机需要传相同的内容给不同的从机,也会影响主机性能。可以使用主从复制,主机做写操作,从机做读操作。
2024-06-12 16:01:27
1124
原创 springboot3 基础特性(1)
在这里插入代码片@SpringBootApplication//这种方式我们可以设置spring应用的一个配置//但是 配置文件中的优先级是要大于此种方式的推荐网站:Spring Boot banner 在线生成工具,制作下载英文 banner.txt,修改替换 banner.txt 文字实现自定义,个性化启动 banner-bootschool.net可以看到 spring启动时 图标变了应用所在的运行环境发生切换时,配置文件常常就需要随之修改。
2024-06-12 09:43:04
694
原创 springboot3 数据访问
导入 mybatis-spring-boot-starter配置数据源信息配置mybatis的mapper接口扫描与xml映射文件扫描编写bean,mapper,生成xml,编写sql 进行crud。事务等操作依然和Spring中用法一样效果:a. 所有sql写在xml中b. 所有mybatis配置写在application.properties下面。
2024-06-10 10:14:40
391
原创 springboot3一些听课笔记
最佳实战● 前后分离○ 后台发生的所有错误,@ControllerAdvice + @ExceptionHandler进行统一异常处理。● 服务端页面渲染○ 不可预知的一些,HTTP码表示的服务器或客户端错误■ 给classpath:/templates/error/下面,放常用精确的错误码页面。■ 给classpath:/templates/error/下面,放通用模糊匹配的错误码页面。○ 发生业务错误■ 核心业务,每一种错误,都应该代码控制,跳转到自己定制的错误页。
2024-06-10 08:53:17
1040
原创 springboot3 一些听课笔记(1)
1、导入任何第三方框架,先排除它的日志包,因为 Boot 底层控制好了日志。2、修改 application.properties 配置文件,就可以调整日志的所有行为。如果不够,可以编写日志框架自己的配置文件放在类路径下就行,比如 logback-spring.xml,log4j2-spring.xml。3、如需对接专业日志系统,也只需要把 logback 记录的日志灌倒 kafka 之类的中间件,这和 SpringBoot 没关系,都是日志框架自己的配置,修改配置文件即可。
2024-06-05 15:27:02
1059
原创 springmvc 异常处理
Spring MVC在处理器方法执行过程中出现了异常,可以采用异常处理器进行应对。一句话概括异常处理器作用:处理器方法执行过程中出现了异常,跳转到对应的视图,在视图上展示友好信息。SpringMVC为异常处理提供了一个接口:HandlerExceptionResolver核心方法是:resolveException。该方法用来编写具体的异常处理方案。返回值ModelAndView,表示异常处理完之后跳转到哪个视图。
2024-05-23 09:21:16
492
原创 SpringMvc-restful设计风格
RESTFul是什么RESTFul是WEB服务接口的一种设计风格。RESTFul定义了一组约束条件和规范,可以让WEB服务接口更加简洁、易于理解、易于扩展、安全可靠。
2024-05-22 11:05:01
421
原创 springboot错误
IDEA创建SpringBoot项目时出现:Initialization failed for ‘https://start.spring.io’ Please check URL, network and proxy settings.翻译中文:'https://start.spring.io’的初始化失败 请检查URL,网络和代理设置。错误信息: 无法下载“ https://start.spring.io”:连接超时。于是我又使用原来的,可以连接上了,具体为啥我也不知道…
2024-05-19 09:02:37
470
原创 SpringMvc(2)RequestMapping注解
RequestMapping注解1 、RequestMapping的作用2、RequestMapping的出现位置3、类上与方法上结合使用4、RequestMapping注解的value属性4.1 value属性的使用4.2 Ant风格的value4.3 value中的占位符(重点)5、RequestMapping注解的method属性5.2衍生Mapping5.3web的请求方式6 、RequestMapping注解的params属性6.1 params属性的理解6.2params属性的4种用法6.3 测
2024-04-20 16:37:27
1083
原创 机器学习基础-PR\ROC\F1
PC曲线就是精准率与召回率曲线,精准率与召回率是相爱相杀的,比如,当我们阈值很高的时候,精准率就会很高,精准率就是预测出来的阳性有多少是真阳性,阈值高,我们测出来的阳性一般都是真的,此时召回率就低,召回率是真的阳性中有多少被预测出来的,因为阈值变高了,我们预测出来的阳性很少。如图,就是根据阈值不同,我们看我们的二分类器的结果,根据结果算出TPR(真阳性)与FPR(假阳性),最好的情况就是如图,我们的ROC曲线越靠近左上角,越好,当然,有一条基准线,就是y=x。,我们更需要关注的是 FP而不是FN。
2024-04-20 10:06:39
386
原创 Cloning into ‘mmdetection‘... fatal: unable to connect to github.com: github.com[0: 20.205.243.166]:
git clone遇到的error: RPC failed;
2024-04-17 10:37:47
184
原创 webIDE jupyternotebook中添加虚拟环境
但是有一些错误,就是我添加我的虚拟环境时显示权限不够。我又卸载重装了 然后添加上去了!我就在这一步前面加上了sudo。重启 jupyternoter。好吧一波三折 接着又显示。此时我的命令就变成了。
2024-04-16 20:00:58
382
原创 SpringMVC (1)第一个程序
MVC是一种软件架构模式(是一种软件架构设计思想,不止Java开发中用到,其它语言也需要用到),它将应用分为三块:M:Model(模型)V:View(视图)C:Controller(控制器)MVC将应用分为三块,每一块各司其职,都有自己专注的事情要做,他们属于分工协作,互相配合:Model:负责业务处理及数据的收集。View:负责数据的展示Controller:负责调度。它是一个调度中心,它来决定什么时候调用Model来处理业务,什么时候调用View视图来展示数据。
2024-04-16 09:31:38
502
原创 spring 集成 mybatis
○ Account,属性私有化,提供公开的setter getter和toString。○ mybatis-spring:mybatis提供的与spring框架集成的依赖。○ 该文件可以没有,大部分的配置可以转移到spring配置文件中。○ 如果遇到mybatis相关的系统级配置,还是需要这个文件。● 第九步:编写mybatis-config.xml配置文件。○ 在配置文件中配置命名空间,以及每一个方法对应的sql。● 第十一步:编写测试程序,并添加事务,进行测试。● 第六步:编写mapper配置文件。
2024-04-13 20:59:21
876
原创 mybatis(9)-逆向工程+PageHelper+注解方式开发
使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL 语句更加混乱不堪。因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句。所谓的逆向工程是:根据数据库表逆向生成Java的pojo类,SqlMapper.xml文件,以及Mapper接口类等。当然,使用注解式开发的话,sql语句是写在java程序中的,这种方式也会给sql语句的维护带来成本。mybatis中也提供了注解式开发方式,采用注解可以减少Sql映射文件的配置。
2024-04-13 09:53:35
699
原创 mybaits(8)-缓存机制
mybatis的缓存:将select语句的查询结果放到缓存(内存)当中,下一次还是这条select语句的话,直接从缓存中取,不再查数据库。第二种:第一次查询和第二次查询之间,执行了增删改操作。● 或者集成其它第三方的缓存:比如EhCache【Java语言开发的】、Memcache【C语言开发的】等。第二次并没有执行sql,而是从二级缓存中读取了,因为一级缓存关闭,会将其内容保存在二级缓存中。进行了增删改的操作,就会导致二级缓存清空,二级缓存此时会失效。缓存的作用:通过减少IO的方式,来提高程序的执行效率。
2024-04-12 11:27:41
1140
原创 mybatis(7)--高级关系映射
开启全局延迟加载之后,所有的sql都会支持延迟加载,如果某个sql你不希望它支持延迟加载怎么办呢?select 是我们接下来要执行的语句,而column 是我们传给sql语句的参数,column是我们查询出来的列名。● 第三种方式:两条SQL语句,分步查询。优点二是支持懒加载。多对一 所以 多的那个表为主表,一的那个为副表,即在Student主表中添加Clazz副表。● 第二种方式:一条SQL语句,association。此时班级是主表,学生是副表。● 第一种方式:一条SQL语句,级联属性映射。
2024-04-12 09:33:05
874
原创 mybatis-动态sql
需求:先根据品牌查询,如果没有提供品牌,再根据指导价格查询,如果没有提供指导价格,就根据生产日期查询。比如我们只更新提交的不为空的字段,如果提交的数据是空或者"",那么这个字段我们将不更新。主要使用在update语句当中,用来生成set关键字,同时去掉最后多余的“,”如果让第一个为空,此时不会出现错误,会自动帮我们去掉多余的and。● 所有条件都为空时,where标签保证不会生成where子句。● 自动去除某些条件前面多余的and或or。可以自动增加前缀,后缀,删除前缀,删除后缀。只有一个分支会被选择!
2024-04-10 20:55:01
1267
原创 mybatis(5)参数处理+语句查询
使用了param注解,底层也是帮我们封装成了map集合,但是是将我们自己定义的名字封装为key,且这里argx不能再用,但是paramx仍可以使用。比如 char 类 我们可以通过parameterType 来告诉mybatis 参数类型是什么,其他基本数据类型都一样,不在举例。注意:如果我们传的是实体类,则#{},{}里应该是实体类的属性名,不能是其他。传入多参数时,其实mybatis底层是帮我们封装成了map集合。我们也可以显示标注类型,省去mybatis的类型匹配。就相当于帮我们封装成。
2024-04-10 09:54:55
514
原创 mybatis(4) 代理机制以及小技巧
此时当我们插入时,就会将自动生成的主键值赋给id,如果为false,则我们输出时car的id为null,虽然数据库中car的id是有值的,但是由于没有回显,输出就为null。在上一篇mybtis的web项目中,我们最后有一个问题没有解决,就是dao的实现类,其代码很类似,只是具体执行的sql语句不同,那么我们是否可以只编写dao的接口,而不用编写其具体实现类呢?虽然我们插入的car id为null,但是当我们再次获取输出car时我们可以看到其id是有值的,当需要进行sql语句关键字拼接的时候。
2024-04-09 17:16:06
640
原创 spring(7)-事务
● 什么是事务○ 在一个业务流程当中,通常需要多条DML(insert delete update)语句共同联合才能完成,这多条DML语句必须同时成功,或者同时失败,这样才能保证数据的安全。○ 多条DML要么同时成功,要么同时失败,这叫做事务。○ 事务:Transaction(tx)● 事务的四个处理过程:○ 第一步:开启事务 (start transaction)○ 第二步:执行核心业务代码。
2024-04-05 09:12:25
891
原创 spring(6)-AOP
将与核心业务无关的交叉业务代码独立的抽取出来,形成一个独立的组件,然后以横向交叉的方式应用到业务流程当中的过程被称为AOP。AOP的优点:● 第一:代码复用性增强。● 第二:代码易维护。● 第三:使开发者更关注业务逻辑。
2024-04-02 11:30:13
915
原创 spring6-代理模式
它既可以代理接口,又可以代理类,底层是通过继承的方式实现的。通过引入一个新的对象来实现对真实对象的操作或者将新的对象作为真实对象的一个替身,这种实现机制即为代理模式,通过引入代理对象来间接访问一个对象,这就是代理模式的模式动机。并且这种方式要为每一个接口都实现一个类,如果我们的接口很多,就会导致类爆炸,使用动态代理可以解决这个问题,动态代理不要求我们写出代理类,而是会在内存中自动生成且实例化一个对象。在程序运行阶段,在内存中动态生成代理类,被称为动态代理,目的是为了减少代理类的数量。解决代码复用的问题。
2024-04-01 09:59:45
805
原创 mybatis(2)核心配置文件
这样就有了自己的数据源比如你可以写一个属于自己的数据库连接池(数据库连接池是提供连接对象的,所以数据库连接池就是一个数据源)。: 这是一个底层设置,如果获取连接花费了相当长的时间,连接池会打印状态日志并重新尝试获取一个连接(避免在误配置的情况下一直失败且不打印日志),默认值:20000 毫秒(即 20 秒)。:即我们的连接池中最多会有几个活跃连接数量,超过该连接数量之后,之后的连接就要等待之前的连接释放。连接池的优点:1每次链接都从池中拿,效率高2.每次只能从池中拿,连接对象的创建数量是可控的。
2024-03-31 17:06:43
599
原创 Mybatis (1)
如果我们有多个mapping.xml文件,且sql语句的id是一致的,此时命名空间就很重要了,因为我们将这个xml文件都配置到mybatis-config.xml文件中,此时如果我们只写id名来找该sql语句的话,就会出错,因为不知道是哪一个。我配置文件也没有开启驼峰式映射,不知道为什么我没有起别名,但是也是对的,他自动帮我匹配到了我的类属性名,好像是会自动开启驼峰式映射?如果我们使用的是一个对象传值,则#{},{}里填写的是getXxx,去掉get第一个字母变小写后的名字,而不是说就是属性名。
2024-03-29 15:44:51
618
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人