这篇文章很好。
https://www.cnblogs.com/cielosun/articles/5752272.html

原文:https://blog.csdn.net/NMZLduiduidui/article/details/105536644?utm_source=app&app_version=4.13.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

jpa自动建表
1.pom.xml添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- 添加Mysql支持 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
  1. application.yml文件添加配置或者application.properties
spring.datasource.url=jdbc:mysql://*:*/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql=true

spring:
#配置mysql
datasource:

driver-class-name: com.mysql.cj.jdbc.Driver

#jdbc链接mysql数据库
url: jdbc:mysql://localhost:3306/association?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC

#用户名
username: root

#密码
password: 123456

#配置jpa
jpa:

#显示sql语句
show-sql: true

#自动建表
hibernate:
   ddl-auto: update

ddl-auto的配置:
create----每次运行该程序,没有表格会新建表格,表内有数据会清空

create-drop----每次程序结束的时候会清空表

*update----每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新

validate----运行程序会校验数据与数据库的字段类型是否相同,不同会报错

3.实体类

//实体类注解,自动建表必须添加
@Entity

// import lombok.Data; 添加可省略get,set,toString方法
@Data

//设置生成的表名,与@Entity配合使用,不添加默认表名为实体类名
@Table(name=“blog”)
public class Blog extends BaseEntity {

@GeneratedValue(strategy= GenerationType.IDENTITY) //id自增策略
@Id  //标注主键
private Long blogId;

private String title;           //标题
private String content;         //内容
private String firstPicture;    //首图

}
注意:实体中@Entity、@Table、@Id引入类型

import javax.persistence.*;
4.自动建表失败的解决办法

实体类要与启动类在同一个包下
在这里插入图片描述

启动类扫描不到实体类的@Entity:在@SpringBootApplication上面添加@EntityScan并指定包
@EntityScan(basePackages = {“com.association”})
在这里插入图片描述

实体类编写

底层逻辑

JPA (Java Persistence API) 是 Sun 官方提出的 Java 持久化规范。它为 Java 开发人员提供了一种对象/关联映射工具来管理 Java 应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合 ORM 技术,结束现在 Hibernate,TopLink,JDO 等 ORM 框架各自为营的局面。
ORM: 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。
Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 JPA 技术实现,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!

和区别

groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artifactId是tomcat。
  比如我创建一个项目,我一般会将groupId设置为cn.snowin,cn表示域为中国,snowin是我个人姓名缩写,artifactId设置为testProj,表示你这个项目的名称是testProj,依照这个设置,你的包结构最好是cn.snowin.testProj打头的,如果有个StudentDao,它的全路径就是cn.snowin.testProj.dao.StudentDao。

Spring Framework

Spring Framework 是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。
该框架基于 Expert One-on-One Java EE Design and Development(ISBN 0-7645-4385-7)一书中的代码,最初由Rod Johnson和Juergen Hoeller等开发。
Spring Framework提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。

SpringDataJpa:JpaRepository增删改查

https://blog.csdn.net/fly910905/article/details/78557110

crud是指在做计算处理时的增加 (Create)、 检索 (Retrieve)、更新 (Update)和删除 (Delete)几个单词的首字母简写。 crud主要被用在描述软件系统中数据库或者 持久层 的基本操作功能。

关于springboot中编写继承JpaRepository这个接口类时出现报红,不能继承这个接口的问题之解决方法

parent标签当中继承版本问题:

https://blog.csdn.net/qq_44084157/article/details/106386689

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐