学习springBoot(四)

本文详细介绍如何在SpringBoot项目中使用JPA进行数据库操作,包括添加依赖、配置数据库、自动生成表及实体类设计。

前言:主要学习了springBoot的数据库相关操作(使用spring Boot Jpa和mysql)

首先介绍一下spring Boot Jpa

一说JavaWeb,很多小伙伴都知道SSH,这个H代表的就是Hibernate框架,这个小伙伴们都知道,可是什么又是JPA呢?相信许多刚入门的小伙伴听说过但不是特别清楚,首先JPA的全称叫做Java Persistence API,JPA是一个基于O/R映射的标准规范,在这个规范中,JPA只定义标准规则,不提供实现,使用者则需要按照规范中定义的方式来使用。目前JPA的主要实现有Hibernate、EclipseLink、OpenJPA等,事实上,由于Hibernate在数据访问解决技术领域的绝对霸主地位,JPA的标准基本是由Hibernate来主导的。下面开始正文流程!

一、由于我们需要用到spring Boot Jpa和Mysql,所以先在pom.xml文件中添加相应的依赖如下:

<!-- 添加JPA Data 依赖 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>

		<!--添加mysql依赖 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>

二、在配置文件中对spring Boot Jpa和mysql做一些相应的配置(在application.properties或者application.yml中)

#springBoot的配置文件
spring:
  profiles:
    active: dev
  datasource:
    # 配置数据库驱动
    driver-class-name: com.mysql.jdbc.Driver
    # 配置数据库
    url: jdbc:mysql://127.0.0.1:3306/dbgirl
    username: root
    password: root

  #配置jpa
  jpa:
    hibernate:
      ddl-auto: create
    show-sql: true

三、下面我们要开始建表了,我们现在不需要再用mysql建表了,可以用下面的方法建表:

在包下面新建一个java类:Girl,并且给它id,cupSize和age的属性,然后再给它加上一个注解@Entity,这个注解就表示咱们写的这个类Girl就是数据库中的一个表!

import javax.persistence.Entity;

@Entity
public class Girl {
    private Integer id;
    private String cupSize;
    private Integer age;
}

然后再给id添加一个注解,让id是自增的。代码如下:

    @Id
    @GeneratedValue
    private Integer id;

然后再给Girl添加构造方法和get、set方法,最后整个的Girl类的代码如下:

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Girl {

    @Id
    @GeneratedValue
    private Integer id;

    private String cupSize;
    private Integer age;

    public Girl() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCupSize() {
        return cupSize;
    }

    public void setCupSize(String cupSize) {
        this.cupSize = cupSize;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

如果这一步你不相信,咱们可以运行一下程序测试一下,结果如下:

可以看到girl表已经被自动建立了,包括id、age、和cupSize这三个属性正式咱们在Girl实体类中所写的!我们并没有写任何一句sql语句!打开ddl查看建表语句:

可以看到字符串类型也与咱们在Girl类中所写的一致!

之所以系统会自动建表是因为前面我们设置jpa的时候,有这么一条:ddl-auto: create  这条语句会帮我们自动创建一个表,这样虽然很好,但我们基本不这样用,因为这样有一个弊端就是系统每一次都会把我们之前的数据库删掉重新建一个。。。。很恐怖的,弄不好就好删库跑路了。。。

我们常用的是 ddl-auto: update   与create不同的是,update在一开始也会创建一个表,但是它不会删除原来的信息!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值