- 博客(40)
- 收藏
- 关注
原创 工厂模式-(简单工厂模式)
LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。简单工厂模式实现了创建对象由工厂返回,但是在需要新增其他品牌的鞋子时需要去修改工厂类,这样写的工厂拓展性差,违反了设计模式的开闭原则.
2023-09-14 10:09:04
375
原创 @BeforeEach与@AfterEach
例如:一个测试类有2个测试方法testA()和testB(),还有一个@BeforeEach的方法,执行这个测试类,@BeforeEach的方法会在testA()之前执行一次,在testB()之前又执行一次。@BeforeEach的方法一共执行了2次。修饰在方法上,和@BeforeEach对应,在每一个测试方法(所有@Test、@RepeatedTest、@ParameterizedTest或者@TestFactory注解的方法)之后执行一次。
2023-09-12 16:32:18
552
原创 Mybatis实体类属性与数据库字段的对应关系
方法四:resultType按照规则自动映射,按照是否开启驼峰映射自动映射属性和列名,只能映射一层结构.深层次的对象结构无法映射,多表查询的时候结果无法映射,此时可使用resultMap(自动映射)select t_id(数据库字段) tId(类的属性), ... , ...from 表名。-- 开启驼峰映射 数据库 s_id java类 sId-->方法三:resultMap自定义映射(自定义映射)方法二:开启驼峰映射。
2023-09-10 19:08:06
597
原创 使用Mybatis实现基本的增删改查------数据输出
当sql返回的实体类在java中没有的时候,可以使用map接值。需要和批量注入一起使用。
2023-09-09 16:20:55
117
原创 使用Mybatis实现基本的增删改查------数据输入
创建Mybatis框架需要创建Mapper.xml,Mapper接口,MybatisConfig配置文件。创建一个空的Maven项目,删去src,用作存储pom的父项目。创建Module在pom中加入测试依赖。Mybatis配置文件。
2023-09-09 13:53:00
125
原创 Cause: java.lang.ClassNotFoundException: Cannot find class: jdbc:mysql://localhost:3306/
额,发现问题的根本不在这里,而是jdbc.properties文件中的url和driver写错位置了。先看Mybatis配置文件中是否将JDBC.properties文件中导入了driver。问题描述:java找不到driver驱动的位置。检查jdbc.properties。不知道有没有大聪明和我犯类似错误的。
2023-09-09 13:30:42
75
原创 JavaScript作用域链与预解析
1.变量提升:就是将所有变量声明提升到当前作用域的最前面,只提升变量的声明,不提升变量的赋值。2.函数提升:函数提升就是将所有函数的声明提升到当前作用域的最前面。js解析器在运行js代码时会先进行预解析,再进行代码的执行。预解析分为变量预解析(变量提升)与函数预解析(函数提升)方法二:使用new Object创建对象。代码执行,按照代码书写的顺序从上往下执行。JavaScript的预解析。方法三:构造函数创建对象。方法一:字面量创建对象。
2023-09-08 19:16:51
109
原创 尚硅谷JDBC核心P33章节快速批量插入数据总结
假如向testone表中插入20000条数据,在不使用快速批量操作时的程序执行需要花费大量时间。这里需要使用setAutocommit()方法关闭自动事务提交,再使用commit方法提交事务。然后我们进行优化代码如下。
2023-09-08 16:19:13
52
原创 Spring声明式事务
spring-tx 使用多态的形式,满足不同类型的事务需求。只读模式可以提升查询效率,内部事务只能使用查询操作。可以自定义指定某个事务进行回滚/不回滚。声明式事务可以理解为对编程式事务的一个封装。事务的传播行为:事务之间调用如何影响子事务。事务之间互不影响,大家都是独立的事务。尽管报了IO异常,事务不会进行回滚。指定异常回滚与指定异常不回滚。
2023-09-08 16:05:39
239
原创 SpringAOP的使用总结
AOP即面向切面编程,通过使用一定的技术将非核心方法抽离出来,放入统一的类中进行管理,在目标方法(核心方法)需要使用对应的非核心方法时,再将非核心方法插入的核心方法中,最后形成一个整合类进行使用.spring-context依赖中包含了spring-aop依赖。创建配置类:(注意配置类中需要声明开启对adpect的注解)方式一:通过类的接口实现AOP操作。
2023-09-08 10:53:48
260
2
原创 java.lang.NullPointerException at Com.su.test.MyTest.test01
RunWith(SpringJUnit4ClassRunner.class)或者@RunWith(SpringRunner.class)还不太懂原理,解决办法就是在测试类注解上添加。
2023-09-08 10:36:13
63
原创 SpringAOP面向切面编程
假设场景:接口:实现类:实习类实现接口的方法实现加减乘除功能:假如此时需要在加减乘除中加入"日志功能",可以显示对应的信息使用普通方法实现:此时需要在实现类的每一个方法中添加对应的非核心代码,代码出现重复,冗余.这样写在需要给方法添加功能时非常麻烦我们可以创建一个类,这个类将实现类中重复的方法提取出来,最后再将提取出来的方法插入到对应的类中.代理的好处,便于后续的维护举例:房东与中介与租客三者的关系。
2023-09-04 20:34:50
39
原创 Spring 利用XML配置的文件实现依赖注入以及控制反转,实现简单的数据库查询操作
此时我们不需要再在各个对象中new对象,spring中对象的创建我们交给IOC容器进行管理,由IOC容器统一帮我们进行管理.我们只需要声明就可。创建一个实体类Student,并实现对应的setter,getter方法,创建空参构造器,有参构造器。注意,在注入前要检查被注入的类中是否声明了需要注入的对象的setter方法。在project中创建一个module并在里面导入下面的依赖。需要在配置文件中对各个对象之间的进行依赖注入DI的操作。创建三层架构进行数据库的访问.创建一个空的project。
2023-08-29 20:49:09
100
原创 java.lang.IllegalStateException: Mapped class was not specified
在BeanPropertyRowMapper对象中加入需要query的实体类的class类。
2023-08-29 20:24:20
116
原创 在linux上安装docker ce步骤
yum remove 程序名(按tab自动补全)方法一:先查询linux中有关docker的程序。卸载docker ce安装包。安装docker ce。方法二卸载旧版本命令。启动docker ce。
2023-04-18 18:03:38
196
原创 安装完docker ce更换国内镜像后pull容器依旧超时
昨天被docker搞得心态爆炸,不管更换哪一个国内镜像都没有效果,今天早上想了想,会不会是现在最新版又有改动,因为我们一般下载的docker都是最新版,现在是23.0.4版本的docker了,有没有一种可能新版的不能再按照以前的步骤操作了呢?于是我就尝试安装老的版本。第一步:先卸载你下载的最新版docker(步骤暂时省略)第二步:查看docker ce现有的版本。后续自己再将镜像换为国内的就可以了。
2023-04-18 11:10:15
452
原创 在windows命令行中杀掉进程
netstat -aon|findstr 端口号。第二步 :根据pid杀死对应进程。第一步:查看对应进程的pid。
2023-04-14 10:46:37
108
原创 面试官问:请讲讲你对于IOC(控制反转)和DI(依赖注入)的理解?
它通过在对象创建时将对象所依赖的其他对象注入进来,实现了对象之间的松耦合。因此,可以解释为IOC是一种设计思想,通过控制反转将对象的创建和管理权利交给框架,实现对象的解耦;而DI则是实现IOC思想的具体实现方式之一,通过依赖注入的方式实现对象之间的解耦。传统的开发方式是由应用程序代码直接控制和实例化对象,而控制反转则是由框架控制对象的创建、管理、组装和调用,应用程序代码只需通过接口或抽象类来间接使用对象,实现了对象的解耦[通过依赖注入,对象不再负责创建或管理它所依赖的其他对象,而是通过IOC容器进行管理。
2023-04-07 11:19:11
167
原创 Spring注入属性的方式
(2)在spring配置文件中配置对象的属性,将属性注入。(1)创建一个类,定义类的属性与对应的set方法。基于set方法进行属性注入。在配置文件中注入属性。
2023-04-05 21:20:41
122
原创 Spring的IOC容器
耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。耦合性:(英语:Coupling,dependency,或称耦合力或耦合度)是一种软件度量,是指一程序中,模块及模块之间信息或参数依赖的程度。虽然实现了部分的解耦合,但是工厂模式还有很大的解耦空间(程序间无法完全实现解耦合,只能降低耦合)
2023-04-04 22:57:56
118
原创 org.elasticsearch.bootstrap.StartupException:java.lang.IllegalArgumentException:
在plugins文件夹下加入ik分词器elasticsearch运行故障问题
2023-02-02 17:14:59
1516
原创 mabatis报错:Result type not match for select id=XXX
mabatis报错:Result type not match for select id=XXX的小问题
2022-10-21 12:35:18
4336
原创 JAVAWeb项目运行时TOMCAT:ddress localhost:1099 is already in use
netstat -aon | findstr port(端口号)杀死进程的过程中出现无法终止进程是因为当前权限不够。打开IDEA1099端口被占领的问题,查出端口号为1099的PID。打开管理员权限后再操作。杀死对应PID的进程。成功打开tomcat。......
2022-08-07 08:09:05
568
原创 visual studio code终端输入中文后无法正常输出问题
代码:#include<iostream>using namespace std;#include<string>int main(){string name;cin>>name;cout<<name;return 0;}无法输出结果在终端界面输入chcp查看自己的活动页代码如果显示在终端输入chcp 936更改活动页代码再次运行运行成功!...
2022-03-26 13:31:04
1544
2
原创 visual studio code C语言分文件编写问题
compare.cpp#include"hanshu.h"int compare(int a,int b){return a>b?a:b;}//函数的定义hanshu.h#include<iostream>using namespace std;int compare(int a,int b);//函数的声明test01.cpp#include"hanshu.h"#include<iostream>using namespace
2022-03-19 10:40:01
1159
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人