天天看点

【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

五.测试案例