天天看點

【MySQL+java+jpa】MySQL資料傳回項目的感悟

文章目錄

  • ​​緒論之準備工作滿足條件​​
  • ​​一.定義一個User類檔案​​
  • ​​二.定義一個類檔案UserController​​
  • ​​三.定義一個UserDao接口​​
  • ​​四.添加幾個樣本資料​​
  • ​​五.測試案例​​

緒論之準備工作滿足條件

    吃過晚飯,完成了一天的學習,沒什麼事,寫寫這篇文章,準備教大家做一個小demo,實作我們的java背景傳回MySQL資料庫裡的資料。做這個項目之前你需要具備如下條件:

1. 安裝了MySQL資料庫,可檢視我寫過的文章《​​MySQL的安裝與部署​​》

2. MySQL資料庫與Idea測試連接配接成功,課觀看我的課程《​​測試MySQL與Idea​​》進行學習。

3. 按我的這篇文章進行配置《​​Springboot引入jpa來管理資料庫​​》

一.定義一個User類檔案

做好如上的準備條件之後,我們先建立一個​

​User​

​類:

  1. 引入我們需要用到的類檔案
package com.example.demo.mysql;
import javax.persistence.Entity;
import javax.persistence.Id;      
  1. 認識我們要用到的标簽:

    Entity标簽的作用:聲稱我們的類User為表格

@Entity      
@Entity
public class User{
    public static void main(String []args){
    //定義我們的id私有變量的同時貼上标簽
    @Id
    private id;
    private name;
    private age;
    //定義我們的構造方法,進行初始化
    //也可以快捷生成我們的構造方法
    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }
    }
}      

二.定義一個類檔案UserController

引入我們需要導入的類檔案:

package com.example.demo.mysql;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;      

認識我們要用的标簽:

@RestController      

了解:

   ​​

​@RestController​

​​ = ​

​@Controller​

​​ + ​

​@ResponseBody​

​​組成,等号右邊兩位同志簡單介紹兩句,就明白我們​

​@RestController​

​的意義了:

  • ​@Controller​

    ​ 将目前修飾的類注入​

    ​SpringBoot IOC​

    ​容器,使得從該類所在的項目跑起來的過程中,這個類就被執行個體化。當然也有語義化的作用,即代表該類是充當Controller的作用
  • ​@ResponseBody​

    ​ 它的作用簡短截說就是指該類中所有的​

    ​API​

    ​接口傳回的資料,甭管你對應的方法傳回Map或是其他Object,它會以​

    ​Json​

    ​字元串的形式傳回給用戶端,本人嘗試了一下,如果傳回的是String類型,則仍然是String。
@Autowired      

Spring管理的Bean對象可以采用自動裝配機制為屬性指派。基于注解方式進行自動裝配,一般使用​

​@Autowired​

​,​

​@Qualifer​

​,​

​@Resource​

​這些注解。

​@Autowired​

​修飾構造方法,set方法,屬性值

【MySQL+java+jpa】MySQL資料傳回項目的感悟

底層完成DI依賴注入操作是通過反射調用set方法,或者構造方法為屬性指派。

  • ​@Autowired​

    ​ 可以修飾屬性,構造方法,set方法,預設依據類型(屬性類型,參數類型)為屬性注入值.假如Spring容器中有多個相同類型的值,會參考名字進行比對查找(屬性名,set方法參數名,構造方法參數名),假如名字有相同的則注入,沒有相同的會注入失敗.
  • ​@Qualifier​

    ​ 配合@Autowired注解按名字為屬性注入值.
  • ​@Resource​

    ​ 可以修飾屬性或set方法,預設依據名字(屬性名,set方法名)為屬性注入值.假如spring容器中有名字相同但類型不同的bean就會注入失敗,當沒有找到對應名字的bean對象,此時會依據類型再次進行查找,假如相同類型則
  • 直接注入,當有多個相同類型可能會注入失敗(假如是按set方法進行注入,依據方法名字沒找到,還會按參數類型查找,對應類型有多個,還可能會按參數名查找,假如沒找對應的,則注入失敗).
@RestController
public class UserController {
    @Autowired
    UserDao userDao;
    @GetMapping("/getAll")
    public List getAll(){
        List all=userDao.findAll();
        return all;
    }
}      

三.定義一個UserDao接口

讓接口去繼承我們的​

​jpa​

​驅動,并把它設定成泛型。

package com.example.demo.mysql;

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserDao extends JpaRepository<User,Integer> {

}      

四.添加幾個樣本資料

元組的詳情如下:

  1. 屬性名分别為:​

    ​id​

    ​​,​

    ​name​

    ​​,​

    ​age​

  2. ​id​

    ​設定為主鍵,可自動排序,notNuLL

五.測試案例