网络请求

78 阅读1分钟

Retrofit库的引用

新建一个interface接口

接口类型

捕获.PNG

Cront和OKHttp区别:

Cront是c++2次封装

注解

ElementType.TYPE:类、接口(包括注解类型)或枚举声明

ElementType.FIELD:字段声明(包括枚举常量)

ElementType.METHOD:方法声明

ElementType.PARAMETER:形参声明

ElementType.CONSTRUCTOR:构造函数声明

ElementType.LOCAL_VARIABLE:局部变量声明

ElementType.ANNOTATION_TYPE:注解类型声明

ElementType.PACKAGE:包声明

ElementType.TYPE_PARAMETER:类型参数声明——JDK1.8加入

ElementType.TYPE_USE:类型的使用——JDK1.8加入

ElementType.MODULE:模块声明——JDK1.9加入

Method.getGenericReturnType()获取返回类型

Method.getAnnotations()获取方法的注解

method.getParameterAnnotations()获取参数注解

代码解释:

package com.example.myapplication1;

import androidx.room.*;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.PrimaryKey;

import java.util.List;

@Entity
public class User{

    @PrimaryKey(autoGenerate = true)
    private int id;
    @ColumnInfo(name = "first_name")
    private  String firstName;
    @ColumnInfo(name = "last_name")
    private String lastName;

    public User(int id, String firstName, String lastName) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public int getId() {
        return id;
    }

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

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    //TODO 可以单独弄个类
    @Dao
    public interface  UserDao{
        @Query(value = "SELECT*FROM User")
        List<User> getAll();

        //TODO 下来自己换数据类型
        @Query(value = "SELECT*FROM User WHERE :uid IN (:userIds)")
        List<User> loadAllByIds(List<Integer> userIds,int uid);

        @Query(value = "SELECT*FROM User WHERE first_name LIKE :first AND last_name LIKE :last")
        User findByName(String first, String last);


        @Insert
        void insertAll(User user);

        @Delete
        void delete(User user);
    }
}