SpringBoot和Spring data JPA

SpringBoot的认识

Springboot是一个快速开发框架,将各种配置和库进行整合,很大程度上减少了各种配置,能够帮助我们快速的整合各种第三方框架(通过maven依赖的方式将比较繁琐的固定包依赖关系通过maven继承的方式全部依赖起来),完全采用注解化,在使用Springboot的过程中基本上没有使用过XML,以简化XML的配置。

SringBoot的优点

  • 为spring的开发提供了更快的入门体验
  • 零配置
  • 集成了大量常用的第三方库的配置,提供了开箱即用的能力
  • 提供一系列大型项目常用的非功能性特征,如嵌入服务器、安全性、度量、运行状况检查

SringBoot的原理

  • 1:通过maven依赖的方式将比较繁琐的固定包依赖关系通过maven继承的方式全部依赖起来,只要引入一个依赖就可以了。

在IDEA中为了方便我们快速生成SpringBoot组件,在创建工程时可以选择Spring Initailizr,通过联网https://start.spring.io手动选配需要导入的依赖,系统自动生成一个符合要求的jar包。
在这里插入图片描述
在这里插入图片描述

    @SpringBootApplication 
    public class Lesson02Application {
        public static void main(String[] args) {
            SpringApplication.run(Lesson02Application.class, args);    
        }
    }
  • 2:在Springboot中是没有web.xml的,采用配置application.yml的方式进行数据库和mybatis的配置,yml采用层次化结构,让我们的配置文件一目了然。
logging:
  level:
    root: info
spring:
  datasource:
    url: jdbc:mysql://localhost:3307/mabatisDB?characterEncoding=utf-8&useSSL=false
    username: root
    password: lovo
    type: com.alibaba.druid.pool.DruidDataSource
  jpa:
    show-sql: true
  • 3:SpringBoot完全采用注解化,并且在Spring3.0之后可以采用注解方式启动SpringMVC,Springboot中内置嵌入Http服务器,可以使用Java来创建tomcate,然后使用tomcate的类加载器加载,当遇到@EnableWebMVC这样的注解时将会去启动SpringMVC。整个过程也就是使用Java代码来启动SpringMVC。(tomcat为自动开启的配置,进入@SpringBootApplication注解)

Spring data JPA

在实现JPA规范的基础上封装的一套JPA应用框架。提供了一层抽象层,将各个ORM框架的操作用统一的方法封装起来。用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能。

规范和简化Java对象的持久化开发工作,统一了Java应用程序访问ORM框架的规范

  • 将DAO层继承JpaRepository<>,即可以使用JPA自带的save(),delete(),findAll()等方法。
  • 如果使用自定义方法,只需要自定义findBy等方法,后面接上Bean的属性名,JPA会自动生成对应的SQL语句
    在这里插入图片描述

SpringBoot中Bean的配置

@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "t_student")
public class StudentBean {

}

与数据库建立连接自增长和手动增长

@Id
//数据库自增长
 @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "pk_id")
    private Long id;
@Id
//最大ID+1
@GenericGenerator(name = "hbincrement",strategy = "increment")
@GeneratedValue(generator = "hbincrement")
@Column(name = "pk_id")
private Long id;
@Id
//uu生成法
@GenericGenerator(name = "idGenerator",strategy = "uuid")
@GeneratedValue(generator = "idGenerator")
@Column(name = "pk_id")
private Long id;

数据库的一对一对应配置

  • 外键主控方,detail_id为student表中的外键,cascade(级联),主表发生改变,外键表也会同时改变
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "detail_id")
private DetailBean detail;
  • 外检表Bean的配置,mappedBy表示声明自己不是关系维护端,由对方来维护
@OneToOne(mappedBy = "detail")
private StudentBean student;

数据库的一对多对应配置

@OneToMany(fetch = FetchType.EAGER,cascade = CascadeType.REMOVE)
//    @OneToMany(fetch = FetchType.EAGER,mappedBy = "classBean")
@JoinColumn(name = "class_id",referencedColumnName = "class_id")
private List<StudentBean> studentList;
@ManyToOne()
@JoinColumn(name = "class_id")
private ClassBean classBean;

数据库的多对多对应配置

@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "student_course"
	,joinColumns = @JoinColumn(name = "student_id")
	,inverseJoinColumns = @JoinColumn(name = "course_id"))
private List<CourseBean> courseBeans = new ArrayList<>();
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "student_course"
    ,joinColumns = @JoinColumn(name = "course_id")
    ,inverseJoinColumns = @JoinColumn(name = "student_id"))
private List<StudentBean> studentBeans = new ArrayList();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值