Integración Springboot + Gradle + Mysql + Jpa
JPA
-
Origen
- Para operar la base de datos más fácilmente, proporcione especificaciones estándar de persistencia
-
Que es
- JPA (Java Persistence API-Java Persistence Layer API) La especificación oficial de persistencia Java de Sun se utiliza para facilitar el funcionamiento de la base de datos.
-
Características y rendimiento
- Metadatos de mapeo de ORM: admite dos formas de metadatos, XML y anotaciones, y el marco persiste en consecuencia los objetos de entidad en las tablas de la base de datos
- API: operar objetos de entidad, ejecutar CRUD
- Lenguaje de consulta: lenguaje de consulta orientado al lenguaje en lugar de orientado a la base de datos
-
Como usar
-
Crear una tabla en la base de datos, el nombre de mi base de datos, el nombre de la
game_manage_system
tablaGame_Type
create database game_manage_system; #创建数据库
use game_manage_system; #使用数据库
create table Game_Type( #创建表
id int(11) not null auto_increment,
game_type_name varchar(30),
game_type_url varchar(255),
primary key(id)
)default charset=utf8;
#插入数据,方便测试
insert into game_manage_system.game_type values(null,"董","www.uniondong.top:8080");
- En
application.properties
la información de base de datos complemento
#配置数据库信息
spring.datasource.url=jdbc:mysql://localhost:3306/game_manage_system?serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=1997Hang
spring.jpa.hibernate.ddl-auto=update
-
Inyección de dependencia, como sigue
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'mysql:mysql-connector-java:8.0.17'
-
Crear la clase de entidad de la tabla correspondiente, mi nombre de clase de entidad
Game_Type
@Entity //@Entity 实体类
@Table(name = "Game_Type") //说明这是一个表
public class Game_Type {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) //自增
@Column(name = "id")
private int id;
@Column(name = "game_type_name") //数据库的字段名
private String game_type_name;
@Column(name = "game_type_url")
private String game_type_url;
public Game_Type() {
}
public Game_Type(String game_type_name, String game_type_url) {
this.game_type_name = game_type_name;
this.game_type_url = game_type_url;
}
public Game_Type(Integer id,String game_type_name, String game_type_url) {
this.id = id;
this.game_type_name = game_type_name;
this.game_type_url = game_type_url;
}
public String getGame_type_name() {
return game_type_name;
}
public void setGame_type_name(String game_type_name) {
this.game_type_name = game_type_name;
}
public String getGame_type_url() {
return game_type_url;
}
public void setGame_type_url(String game_type_url) {
this.game_type_url = game_type_url;
}
}
- Crear una clase de operación de base de datos DAO, utilizada para operar la tabla correspondiente, mi nombre de clase
Game_Type_Dao
//提供泛型<Game_Type,Integer>,说明是Game_Type的DAO,并且主键是Integer类型
//JpaRepository 这个父接口,就提供了CRUD操作
public interface Game_Type_Dao extends JpaRepository<Game_Type,Integer> {
}
- Crear una interfaz de controlador para probar, agregar, eliminar, verificar y cambiar mi nombre de clase
Dao_Test
@RestController
public class Dao_Test {
@Autowired
Game_Type_Dao game_type_dao;
//通过id查找
@RequestMapping("/find_by_id_G_T")
public Game_Type find_by_id_G_T(@RequestParam("id")Integer id){
return game_type_dao.findById(id).get(); //调用库函数
}
//查找全部
@RequestMapping("/Find_All_G_T")
public List<Game_Type> find_all_G_T(){
return game_type_dao.findAll();
}
//插入
@RequestMapping("/Insert_G_T")
public Game_Type insert_game_type(@RequestParam("game_type_name") String name,@RequestParam("game_type_url") String url){
Game_Type game_type = new Game_Type(name,url);
return game_type_dao.save(game_type); //调用库函数
}
//删除
@RequestMapping("/delete_By_Id_G_T")
public void delete_by_id_game_type(@RequestParam("id")Integer id){
game_type_dao.deleteById(id); //调用库函数
}
//修改
@RequestMapping("/update_game_type")
public Game_Type update_game_type(@RequestParam("id") Integer id,@RequestParam("game_type_name") String name,@RequestParam("game_type_url") String url){
Game_Type game_type = new Game_Type(id,name,url);
return game_type_dao.save(game_type); //调用库函数
}
}
- Finalmente, adjunte mi diseño de archivo para una fácil comprensión
End