第三章:SpringBoot使用SpringDataJPA完成CRUD(create,read,update,delete)

在我们平时的项目中,数据的存储以及访问都是最为核心的关键部分,现在有很多企业采用主流的数据库,如关系型数据库:MySQL,oracle,sqlserver。非关系型数据库:redis,mongodb等。
SpringBoot已经为我们提供了很多种的数据库来做数据存储以及读取,上面只是简单的几种,那么我接下来以MySQL为例来讲述下本章的内容。

新建项目

创建项目添加web,MySQL,JPA组件

注意:如果使用内部tomcat运行项目需要将spring-boot-starter-tomcat的scope标签注释掉。

配置数据源以及JPA

在application.yml中添加

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?characterEncoding=utf-8  (填写mysql数据库名)
    username: root      (填写自己mysql账号)
    password: *****     (填写自己mysql密码)
    driver-class-name: com.mysql.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update  (选择建表方式update是更新数据,create先删除表,在新建)
    show-sql: true

新建数据库测试表:

create table t_user(t_id int primary key auto_increment,t_name varchar(20),t_age int(10),t_address varchar(50));

根据数据库中的字段创建一个UserEntity

package com.sunlu.chapter1_3.entity;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Objects;

@Entity
@Table(name="t_user") //参数为表名  若表存在 则更新,不存在创建
public class UserEntity implements Serializable {
    @Id
    @GeneratedValue
    @Column(name="t_id")//参数为数据库字段名
    private Integer id;

    @Column(name="t_name")
    private String name;

    @Column(name = "t_age")
    private Integer age;

    @Column(name = "t_address")
    private String address;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        UserEntity that = (UserEntity) o;
        return Objects.equals(id, that.id) &&
                Objects.equals(name, that.name) &&
                Objects.equals(age, that.age) &&
                Objects.equals(address, that.address);
    }

    @Override
    public int hashCode() {

        return Objects.hash(id, name, age, address);
    }

    @Override
    public String toString() {
        return "UserEntity{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                '}';
    }
}

创建UserRepository继承JpaRepository<实体类,id类型>

@Repository
public interface UserRepository extends JpaRepository<UserEntity,Integer> {
}

创建视图控制器:UserController

@RestController
public class UserController {
    @Autowired
    UserRepository userRepository;
    @RequestMapping(value = "/list",method = RequestMethod.GET)
    public List<UserEntity> user(){
        return userRepository.findAll(); //查询表中所有数据
    }
}

1.查询方法:userRepository.findAll();

2.添加、更新方法 :userRepository.save(userEntity); 

       userJPA.save方法可以执行添加也可以执行更新,如果需要执行持久化的实体存在主键值则更新数据,如果不存在则添加数据。

3.删除方法:userRepository.removeAll();

请求路径:http://localhost:8080/list

 

链接:https://www.jianshu.com/p/b6932740f3c0
來源:简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值