Springboot+Gradle+Mysql+Jpa整合(最简单)

Springboot+Gradle+Mysql+Jpa 整合

JPA

  • 由来

    • 为了更加方便的操作数据库,提供持久化标准规范
  • 是什么

    • JPA(Java Persistence API——Java持久层API)Sun官方提出的Java持久化规范,用来方便大家操作数据库。
  • 特点及性能

    • ORM映射元数据:支持XML和注解两种元数据的形式,框架据此将实体对象持久化到数据库表中
    • API:操作实体对象,执行CRUD
    • 查询语言:面向语言而非面向数据库的查询语言
  • 如何使用

  • 创建数据库中表,我的数据库名game_manage_system,表名Game_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");

  • application.properties中添加数据库信息
#配置数据库信息
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
  • 依赖注入,如下

        implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
        runtimeOnly 'mysql:mysql-connector-java:8.0.17'
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yz9A68WK-1584707956297)(/home/dong/.config/Typora/typora-user-images/image-20200320203522965.png)]

  • 创建对应表的实体类,我的实体类名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;
    }
}
  • 创建DAO数据库操作类,用于操作对应的表,我的类名Game_Type_Dao
//提供泛型<Game_Type,Integer>,说明是Game_Type的DAO,并且主键是Integer类型
//JpaRepository 这个父接口,就提供了CRUD操作
public interface Game_Type_Dao  extends JpaRepository<Game_Type,Integer> {
}
  • 创建Controller接口进行测试增删查改,我的类名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);			//调用库函数
	}
}
  • 最后附上我的文件布局,方便理解
    在这里插入图片描述

End

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页