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

1 篇文章 0 订阅
1 篇文章 0 订阅

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

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

一、数据类的代码:

本项目中的litepal.xml:

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <dbname value="CanteenManager"></dbname>

    <version value="1"></version>

    <list>
        <mapping class="com.example.fanpeng.smartcanteen.User"></mapping>
        <mapping class="com.example.fanpeng.smartcanteen.Dishes"></mapping>
        <mapping class="com.example.fanpeng.smartcanteen.Comment"></mapping>
    </list>
</litepal>

用户表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<Comment> comments;//该客户给予的评价
    private List<Dishes> 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<Comment> comments) {
        this.comments = comments;
    }

    public List<Dishes> getMyUp() {
        return myUp;
    }

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

    public List<Comment> getComments() {
        return comments;
    }

    public void setComments(ArrayList<Comment> 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<Comment> 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<Comment> getComments() {
        return comments;
    }

    public void setComments(List<Comment> 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又不会用的地方就看郭霖大神的博客就完事了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值