Retrofit库的引用
新建一个interface接口
接口类型
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);
}
}