緒論之準備工作滿足條件
喫過晚飯,完成了一天的學習,沒什麼事,寫寫這篇文章,準備教大家做一個小demo,實現我們的java後臺返回MySQL數據庫裏的數據。做這個項目之前你需要具備如下條件:
1. 安裝了MySQL數據庫,可查看我寫過的文章《MySQL的安裝與部署》
2. MySQL數據庫與Idea測試連接成功,課觀看我的課程《測試MySQL與Idea》進行學習。
3. 按我的這篇文章進行配置《Springboot引入jpa來管理數據庫》
一.定義一個User類文件
做好如上的準備條件之後,我們先新建一個User
類:
- 引入我們需要用到的類文件
package com.example.demo.mysql;
import javax.persistence.Entity;
import javax.persistence.Id;
- 認識我們要用到的標籤:
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方法,屬性值
底層完成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> {
}
四.添加幾個樣本數據
元組的詳情如下:
- 屬性名分別爲:
id
,name
,age
id
設置爲主鍵,可自動排序,notNuLL
數據添加隨你意哈!!!