1. MySQL数据库连接出错:2003-Can’t connect to MySQL server on ‘localhost’(10038)
解决办法:打开任务管理器,在服务处,把MySQL的服务打开
2. User中setter和getter方法的作用
这是Java中的封装技术。
封装:
也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。
在设置变量的属性时,我们通常会对数据进行封装,这样就可以增加了数据访问限制,增加了程序可维护性。而实现方法就是:用private去修饰一个变量,然后再用setter方法去设置该变量的值,然后在用getter方法去调用该变量的值。代码如下:
比如:
一个父类有多个子类(甚至还有间接子类),程序代码中,子类是不能直接访问父类的private属性的;这时提供的set /get方法是很有必要的。诚然,若将父类的属性声明为protected,在子类中就可以直接访问了,但是这种方法破坏了数据的隐藏和封装原则,关键是不利于代码的维护,如果父类中的一个属性改名了,那么在子类中用到该属性名的代码,要发生大范围的修改,而前面的private,set,get方法就比较好,对代码只需小范围的修改,一般都是这么用的,这是一个良好的编程习惯。
3. Java中构造方法的作用
构造方法的主要作用就是创建对象。分为有参数和无参数的构造方法。构造方法的名字必须和所在类的名字一致,没有返回值,但不能声明void,访问权限可以为任意,但是一般情况下使用public方法权限。
- 有参数的构造方法主要就是用于对创建出来的对象进行初始化,如:
- 无参数的构造方法又叫缺省构造方法。若你的类如果没有定义任何构造方法,Java的编译器会配上一个自动缺省构造方法,这个构造方法是空的,不做任何事情,只是为了满足编译需要。或者,也可以自己写一个空的构造方法,在里边对一些属性赋值,或者执行一些其他操作,如:
4. super与this关键字
由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字。super 可以用来访问父类的构造方法、普通方法和属性。
super与this的区别:
this 指的是当前对象的引用,super 是当前对象的父对象的引用
super 关键字的用法:
super.父类属性名:调用父类中的属性
super.父类方法名:调用父类中的方法
super():调用父类的无参构造方法
super(参数):调用父类的有参构造方法
this 关键字的用法:
this.属性名:表示当前对象的属性
this.方法名(参数):表示调用当前对象的方法
5. @Mapper注解的介绍
Mybatis是一个优秀的持久层框架,什么是持久层呢?就是可以长时间保存数据到数据库或者硬盘当中,不会像放在内存中,一断电就丢失了。
@Mapper注解是由Mybatis框架中定义的一个描述数据层接口的注解,注解往往起到的都是一个描述性作用,用于告诉sprigng框架此接口的实现类由Mybatis负责创建,并将其实现类对象存储到spring容器中。
- 首先我们需要引入jar包(依赖),分别是JDBC、MYSQL、MYBATIS。
- 然后创建一个接口类,类的上面需要写上@Mapper注释用来表示该接口类的实现类对象交给mybatis底层创建,然后交由Spring框架管理。
- 类里写上对数据库中的表数据的抽象方法
- 创建一个测试类,用来测试接口中的类的方法可否调用,测试类的上面要写上@SpringBootTest注解表示这个测试类交给Spring框架管理,声明一个接口类型的属性然后上面用@Autowired注解表示将这个接口类的实现类对象赋值给接口属性,然后写上一个方法,方法体里利用test对象调用接口中的testdelete删除方法,返回值是一个整数的类型的变量。输出这个变量,表示是数据库表中被影响行数。我删除的是id为5这个信息所以只有1个影响行数。
参考:https://segmentfault.com/a/1190000023818508
6. 依赖注入
6.1 什么是依赖注入?
如果一个类A的功能实现需要借助于类B,那么就称类B是类A的依赖。如果在类A的内部去实例化类B,那么两者之间会出现较高的耦合,一旦类B出现了问题,类A也需要进行改造,如果这样的情况较多,每个类之间都有很多依赖,那么就会出现牵一发而动全身的情况,程序会极难维护,并且很容易出现问题。
要解决这个问题,就要把A类对B类的控制权抽离出来,交给一个第三方去做,把控制权反转给第三方,就称作控制反转(IOC Inversion Of Control)。控制反转是一种思想,是能够解决问题的一种可能的结果,而依赖注入(Dependency Injection)就是其最典型的实现方法。由第三方(我们称作IOC容器)来控制依赖,把他通过构造函数、属性或者工厂模式等方法,注入到类A内,这样就极大程度的对类A和类B进行了解耦。
参考:https://blog.csdn.net/bandaoyu/article/details/104761209
6.2 如何实现依赖注入
以往Spring使用中,依赖注入一般都是通过在Spring的配置文件中添加bean方法实现的,相对于这个方式SpringBoot的实现方式就显得非常便捷了。SpringBoot的实现方式基本都是通过注解实现的。