Android SugerORM框架的使用

一、环境配置
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
本人水平有限,望指正,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值