Android SugerORM框架的使用

原创 2016年07月14日 20:42:05

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

android数据库框架SugarORM的简单使用

原文地址:http://satyan.github.io/sugar/getting-started.html 步骤1:下载 Gradle:  compile 'com.github.satyan:...

android Sugar ORM

Suger是android平台的ORM 使用也相对较简单 1.添加依赖 2.配置Sugar 3.编写model 4.增删改查 添加依赖 github上面可以搜索到该项目添加依赖即可。 配...
  • yudapi
  • yudapi
  • 2016年08月28日 23:53
  • 626

SugarORM遇到的那些坑

Android中,可以使用SugarORM框架进行数据库的操作。 它具有下列优点: 1. 不用写复杂的sql语句,而用简单的API即可完成创建和操纵数据 2. 可以在原有的Bean上仅仅添加小的修...
  • liranke
  • liranke
  • 2016年11月30日 11:45
  • 2542

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

SugarOrm使用

Android Studio SugarORM简介要说SugarORM之前不得不说ORM。ORM(Object-Relational Mapping)即对象关系映射模式,是Java开发中常用的技术。...

SugarORM的操作

需要和Rest服务端请求大量的数据同时这些数据本地也要保存到sqlite数据库 对于第一点,目前的Volley、Gson等框架既可以解决从服务端请求数据拉下Json数据并解析成java对象的全过程。...

Sugar ORM 普及文章

sugar orm 是专门针对android orm 的一套框架,简单好用,但是坑可是很多的,昨天在坑里面爬了一天,错误是no such table 。没有这个表,应该是我们配置orm 的时候出现了问...

Sugar ORM android中用于操作数据库的jar包

http://satyan.github.io/sugar/index.html 在android

SugarORM遇到的那些坑(二)

java.lang.IllegalArgumentException: class cn.xxx.xxx.model.InfoModel declares multiple JSON fields n...
  • liranke
  • liranke
  • 2016年11月30日 13:32
  • 1237

android Sugar orm入门及用法

Sugar orm入门及用法1.导入gradle依赖compile 'com.github.satyan:sugar:1.5'github地址:https://github.com/satyan/su...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android SugerORM框架的使用
举报原因:
原因补充:

(最多只允许输入30个字)