关闭

Android SugerORM框架的使用

标签: android应用框架SugerORM
1100人阅读 评论(0) 收藏 举报
分类:

一、环境配置
1.在build.gradle中添加

      compile 'com.github.satyan:sugar:1.5'

2.AndroidManifest.xml中的application 中添加

<meta-data android:name="DATABASE" android:value="family.db"/>
<meta-data android:name="VERSION" android:value="1"/>
<meta-data android:name="QUERY_LOG" android:value="true"/>
<meta-data android:name="DOMAIN_PACKAGE_NAME"  android:value="com.bean"/>

作用:(1).创建的数据库db的文件名,将在/data/data/{你的应用包名}/databases下创建对应的文件
(2).数据库版本号
(3).是否允许SugarORM记录log
(4).创建数据库表对应的Bean所在的包的路径

对于第四点需要强调一些,SugarORM是通过一个Bean文件来创建一个表的,DOMAIN_PACKAGE_NAME的value就定义了这个专门存放实体的路径,一个实体类对应一张表。

3.再写一个继承自SugerAPP的类App

public class App extends SugarApp{
    @Override
    public void onCreate() {
        super.onCreate();
        SugarContext.init(this);
    }

    @Override
    public void onTerminate() {
        super.onTerminate();
    }
}

再在AndroidManifest.xml中的application的属性中添加

android:name=".App"

二 、在自己定义的包路径com.bean下创建实体类,Suger会自动生成这个对应的数据库的一张表。

package com.bean;

import android.os.Parcel;
import android.os.Parcelable;

import com.orm.SugarRecord;

/**
 * Created by c9736 on 2016/7/13.
 */
public class Book extends SugarRecord implements Parcelable {

    /*
    @Column这个注解意思是说你想强制按照你的规定的名字来创建表中对应的字段名字,所以这里的skuId在Goods表中的字段名就不是默认的sku_id了,而是你自己给的sku_ID
    @Ignore这个注解强调这个属性在表中不要创建对应的字段

     */
    String name;//书名
    String number;//编号
    String author;//作者
    protected Book(Parcel in) {
        name = in.readString();
        number = in.readString();
        author = in.readString();
    }

    public Book() {
    }

    public static final Creator<Book> CREATOR = new Creator<Book>() {
        @Override
        public Book createFromParcel(Parcel in) {
            return new Book(in);
        }

        @Override
        public Book[] newArray(int size) {
            return new Book[size];
        }
    };

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getName() {
        return name;
    }

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

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeString(number);
        dest.writeString(author);
    }

    @Override
    public String toString() {
        return getId()+"/"+getAuthor()+"/"+getName()+"/"+getNumber();
    }
}


三、增删改查的使用

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //增加一条数据
        Book book=new Book();
        book.setName("java");
        book.setAuthor("xiaochen");
        book.setNumber("510110");
        long rec= book.save();
        Log.i("sugertest", "rec" + String.valueOf(rec));    //rec=2

        //查询一条数据
        Book queryBook=Book.findById(Book.class, 1);
        Log.i("sugertest","queryBook"+queryBook.toString());

        //find
        List<Book> booklist=Book.find(Book.class, "number=?", "510110");
        Log.i("sugertest","booklist"+booklist.size());
        //findWithQuery
        List<Book> books=Book.findWithQuery(Book.class,"Select * from Book where number=?","java");
        Log.i("sugertest","books"+books.size());

        //更新一条数据
        Book book1=Book.findById(Book.class,1);
        book1.setName("android");
        book1.save();

        //查询一条数据
        Book queryBook1=Book.findById(Book.class, 1);
        Log.i("sugertest", "queryBook" + queryBook1.toString());

        //删除一条数据
        Book book2=Book.findById(Book.class,1);
        book2.delete();
    }
}

下载地址:http://download.csdn.net/detail/qq_17525769/9575457
源码:https://github.com/satyan/sugar
本人水平有限,望指正,谢谢

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15066次
    • 积分:564
    • 等级:
    • 排名:千里之外
    • 原创:43篇
    • 转载:0篇
    • 译文:0篇
    • 评论:3条
    文章分类