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

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

2.AndroidManifest.xml中的application 中添加

"DATABASE" android:value="family.db"/>"VERSION" android:value="1"/>"QUERY_LOG" android:value="true"/>"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 CREATOR = new Creator() {        @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 booklist=Book.find(Book.class, "number=?", "510110");        Log.i("sugertest","booklist"+booklist.size());        //findWithQuery        List 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. SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
  2. 一句话锁定MySQL数据占用元凶
  3. Android数据篇(一)
  4. 序列化原理(二):从源码理解Parcelable
  5. Android(安卓)MediaPlayer指定文件位置播放
  6. Android(安卓)2.3 Midia Framework
  7. Android开发历程(一) hello world
  8. Android(安卓)数据传递-通过剪切板传递数据
  9. Android(安卓)串口通信之间的发送数据与接收数据(详解)

随机推荐

  1. Android常用的布局属性
  2. android:inputType参数类型说明
  3. [Android(安卓)XML] --- 单行省略号
  4. android EditText inputType 值说明
  5. Android(安卓)UI开发
  6. Android: Android中各种onTouch事件
  7. Android(安卓)制作引导层 使用透明的acti
  8. Android中RelativeLayout相对布局
  9. android:inputType参数类型说明
  10. listView分割线