二、数据类和litepal使用中一些需要注意的细节

通过litepal可以方便的直接将你编写的类映射为数据表(table),lietpal的具体使用方法不在此处讨论:

https://blog.csdn.net/guolin_blog/article/details/38556989

一、数据类的代码:

本项目中的litepal.xml:



    

    

    
        
        
        
    

用户表user:

package com.example.fanpeng.smartcanteen;

import org.litepal.LitePal;
import org.litepal.annotation.Column;
import org.litepal.crud.LitePalSupport;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class User extends LitePalSupport implements Serializable {
    private int id;//自增

    @Column(unique = true)
    private String name;
    private String pass;
    @Column(defaultValue = "2")
    private int identity;//辨别身份,0为管理员,1为商家,2为客户
    private String part=null;//主要用于辨别商家所处食堂和窗口,默认为"yixin1"意为益新一楼,具体窗口暂不设
    private  List comments;//该客户给予的评价
    private List myUp=new ArrayList<>();//商家上传的菜品
    private int DishesCount;//该用户上传的菜品数量
    public int getId(){
        return id;
    }
    public void setId(int id){
        this.id=id;
    }

    public String getName() {
        return name;
    }

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

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    public int getIdentity() {
        return identity;
    }

    public void setIdentity(int identity) {
        this.identity = identity;
    }

    public String getPart() {
        return part;
    }

    public void setPart(String part) {
        this.part = part;
    }

    public int getDishesCount() {
        return DishesCount;
    }

    public void setDishesCount(int dishesCount) {
        DishesCount = dishesCount;
    }

    public void setComments(List comments) {
        this.comments = comments;
    }

    public List getMyUp() {
        return myUp;
    }

    public void setMyUp(List myUp) {
        this.myUp = myUp;
    }

    public List getComments() {
        return comments;
    }

    public void setComments(ArrayList comments) {
        this.comments = comments;
    }
}

菜品表:

package com.example.fanpeng.smartcanteen;

import org.litepal.LitePal;
import org.litepal.annotation.Column;
import org.litepal.crud.LitePalSupport;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class Dishes extends LitePalSupport implements Serializable {
    private int id;
    private String DishNum;
    @ Column(unique = true)
    private String name;
    private String part;//菜品所在分区
    public  double price;
    private User up;//菜品上传者
    private List comments;//菜品获得的评价
    private int CommentCount;
    private String upDate;//日期用字符串储存
    private  String picturePath;
    @Column(defaultValue = "true")
    private boolean onSale;//是否上架,数据库中以0/1的方式保存;

    public boolean isOnSale() {
        return onSale;
    }

    public void setOnSale(boolean onSale) {
        this.onSale = onSale;
    }


    public String getPicturePath() {
        return picturePath;
    }

    public void setPicturePath(String picturePath) {
        this.picturePath = picturePath;
    }

    public int getId() {
        return id;
    }

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

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

    public String getName() {
        return name;
    }

    public void setPart(String part) {
        this.part = part;
    }

    public String getPart() {
        return part;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public User getUp() {
        return up;
    }

    public void setUp(User up) {
        this.up = up;
    }

    public int getCommentCount() {
        return CommentCount;
    }

    public void setCommentCount(int commentCount) {
        CommentCount = commentCount;
    }


    public List getComments() {
        return comments;
    }

    public void setComments(List comments) {
        this.comments = comments;
    }

    public String getUpDate() {
        return upDate;
    }

    public void setUpDate(String upDate) {
        this.upDate = upDate;
    }

    public String getDishNum() {
        return DishNum;
    }

    public void setDishNum(String dishNum) {
        DishNum = dishNum;
    }
}

评论表Comment:

package com.example.fanpeng.smartcanteen;

import org.litepal.crud.LitePalSupport;

import java.io.Serializable;
import java.util.Date;

public class Comment extends LitePalSupport implements Serializable {
    private  int id;
    private String text;//评论的内容
    private Dishes dish;
    private User commentator;//评论者
    private double grade;//给出的分数
    private String setDate;//评论日期

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public int getId() {
        return id;
    }

    public Dishes getDish() {
        return dish;
    }

    public User getCommentator() {
        return commentator;
    }

    public double getGrade() {
        return grade;
    }

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

    public void setDish(Dishes dish) {
        this.dish = dish;
    }

    public void setCommentator(User commentator) {
        this.commentator = commentator;
    }

    public void setGrade(double grade) {
        this.grade = grade;
    }

    public String getSetDate() {
        return setDate;
    }

    public void setSetDate(String setDate) {
        this.setDate = setDate;
    }
}

二、使用注意

(1)创建数据类时将字段写好后尽量使用Android Studio的generater功能自动生成每个字段的getter和setter方法,尽量不要自己写,很容易出现问题;

(2)使用litepal查询时如果需要使用到正在查询表的关联表的内容时需要使用激进查询。

(3)总之litepal又不会用的地方就看郭霖大神的博客就完事了

你可能感兴趣的:(litepa,数据,项目)