SpringBoot除了使用Mybatis操作数据库外,还可以使用JPA来操作数据库,好处是不需要在手动去数据库建表了。
首先配置依赖,POM.XML
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
配置数据源和一些配置
#mysql
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/edumanager?characterEncoding=utf8&useSSL=false
spring.datasource.username=edumanager
spring.datasource.password=edumanager
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# Hikari 数据源专用配置
spring.datasource.hikari.maximum-pool-size=20
spring.datasource.hikari.minimum-idle=5
# JPA 相关配置
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
创建实体类User.java
,使用了lombok插件可以不用写下面的get/set方法,启动运行一下,数据库中会自动创建MAIN_USER表
package cn.vwmwv.hgnuman.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@AllArgsConstructor // 自动有参构造
@NoArgsConstructor // 自动无参构造
@Entity // 标注实体
@Table(name = "MAIN_USER") //表示对应于数据库中的MAIN_USER,将会自动创建
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) // 自增主键
private Integer id; // 用户id
@Column(length = 100)
private String username; // 用户名
@Column(length = 100)
private String pwd; // 用户密码
@Column(length = 100)
private Integer user_jurisdiction; // 用户权限 1 管理员,2维修人员 3,学生
// get/set方法,使用Lombok插件可省略
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Integer getUser_jurisdiction() {
return user_jurisdiction;
}
public void setUser_jurisdiction(Integer user_jurisdiction) {
this.user_jurisdiction = user_jurisdiction;
}
}
写一个UserRepository接口继承JpaRepository接口,可以实现大部分的CRUD方法。
package cn.vwmwv.hgnuman.repository;
import cn.vwmwv.hgnuman.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User,Integer> {
}
写一个controller,用于实现CRUD
package cn.vwmwv.hgnuman.controller;
import cn.vwmwv.hgnuman.dao.UserDao;
import cn.vwmwv.hgnuman.entity.User;
import cn.vwmwv.hgnuman.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Autowired
UserRepository userRepository;
@GetMapping("/user/{id}") //http://127.0.0.1:8080/user/1
public User GetUser(@PathVariable("id") Integer id){
return userRepository.findById(id).orElse(null); //根据id查找数据,
}
@GetMapping("/user") // http://127.0.0.1:8080/user?username=zhangs&pwd=1235&user_jurisdiction=2
public User insertUser(User user){
return userRepository.save(user); // 直接返回保存的数据
}
}