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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章