5.27-培训

1.如何通过navicat设置外键

设置外键,是在子表中设置,并不是在父表中设置。例如id是student表中的字段,但id是score表的外键,所以要设计score表,通过右键设计,进行添加外键,配置好相关属性,区分父子关系。且id这个字段既可以是主键又可以是外键。

 1.cascade:在父表上 update / delete记录时,同步 update / delete掉子表的匹配记录

2.No action:如果子表中有匹配的记录, 则不允许对父表对应候选键进行update / delete操作 3.Restrict:同 no action, 都是立即检查外键约束

4.set null:在父表上 update / delete记录时,将子表上匹配记录的列设为 null要注意子表的外键列不能为 not null

2.创建maven项目

maven具体是什么?一个比较常用的项目构建管理工具,通过maven我们可以简化jar包的注入,通过xml文件的格式去极大的优化注入jar包的繁琐流程,统一管理jar包

在 maven 中,根据 groupId、artifactId、version 组合成 groupId:artifactId:version 来唯一识别一个 jar 包。

每个项目都有一个 pom.xml 文件,该文件中定义本项目的对象模型,描述本项目,配置插件,声明依赖;

3.构造函数

构造方法又叫构造器(constructor),是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它有几个特点:

1、方法名和类名相同

2、没有返回值

3、在创建对象时,系统会自动的调用该类的构造器完成对象的初始化。

4.springboot启动类

4.1.pom.xml文件注入

4.2新建springboot的启动类-ZSSpringbootApplication

添加注解@SpringBootApplication:启动注解。查看源码可发现,@SpringBootApplication是一个复合注解,包含了@SpringBootConfiguration,@
EnableAutoConfiguration,@ComponentScan.

4.3.添加注解

@Component;@Autowired;@PostConstruct

@Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean

@Autowired按照类型注入, 它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。

@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Selevct的时候运行,并且只会被服务器执行一次

PostConstruct在构造函数之后执行,init()方法之前执行。被@PostConstruct注解的方法,将会在依赖注入完成后被自动调用。

spring中Constructor、@Autowired、@PostConstruct的顺序:Constructor << @Autowired << @PostConstruct

4.4.区分scope容器的概念

spring中scope是一个非常关键的概念,简单说就是对象在spring容器(IOC容器)中的生命周期,也可以理解为对象在spring容器中的创建方式。

singleton类型的bean定义从容器启动到第一次被请求而实例化开始,只要容器不销毁或退出,该类型的bean的单一实例就会一直存活,典型单例模式,如同servlet在web容器中的生命周期。都是单一实例如同每个国家都有一个总统,国家的所有人共用此总统,而这个国家就是一个spring容器,总统就是spring创建的类的bean,国家中的人就是其它调用者,总统是一个表明其在spring中的scope为singleton,也就是单例模型。

spring容器在进行输出prototype的bean对象时,会每次都重新生成一个新的对象给请求方,虽然这种类型的对象的实例化以及属性设置等工作都是由容器负责的,但是只要准备完毕,并且对象实例返回给请求方之后,容器就不在拥有当前对象的引用,请求方需要自己负责当前对象后继生命周期的管理工作,包括该对象的销毁。也就是说,容器每次返回请求方该对象的一个新的实例之后,就由这个对象“自生自灭”,最典型的体现就是spring与struts2进行整合时,要把action的scope改为prototype。

如同分苹果,将苹果的bean的scope属性声明为prototype,在每个人领取苹果的时候,我们都是发一个新的苹果给他,发完之后,别人爱怎么吃就怎么吃,爱什么时候吃什么时候吃,但是注意吃完要把苹果核扔到垃圾箱!对于那些不能共享使用的对象类型,应该将其定义的scope设为prototype。

 4.5.get和set的用法

4.6.spring项目首次运行

 4.7.spring容器的逻辑

5.链接数据库

5.1.resources创建application.yaml,配置数据库地址等数据信息

server:
  # 标记本项目运行在此电脑的 8000 端口
  port: 8000
spring:
  datasource:
    # 数据库地址, mysql 端口默认 3306
    url: jdbc:mysql://数据库地址:3306/数据库名?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&allowMultiQueries=true&useSSL=false&serverTimezone=UTC
    # 驱动类,复制
    driver-class-name: com.mysql.jdbc.Driver
    username: xxxx
    password: xxxx

5.2.pom文件添加依赖

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.7.RELEASE</version>
    </parent>
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- Mysql Connector -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!-- Druid 数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.4</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3.4</version>
        </dependency>
    </dependencies>

5.3.springboot添加注解@MapperScan("zs.summertrain.system")

@MapperScan标记了Mybatis在项目里哪些地方去寻找注解

5.4.创建数据类和接口类

 

@Select的注解方法返回的是一个数组, @Insert,@Delete,@Update的注解方法返回的是int,受影响的行数。

@Mapper注解和@Componant作用有些许相似,有时候两者一起出现可以避免studentMapper出现红色波浪线

@Autowired
private StudentMapper studentMapper;

5.5.运行,控制板和Navicat查看返回信息

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值