在我们平时的项目中,数据的存储以及访问都是最为核心的关键部分,现在有很多企业采用主流的数据库,如关系型数据库: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
來源:简书