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:...
  • cheng9981
  • cheng9981
  • 2016年11月30日 22:53
  • 2315

android Sugar ORM

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

快速开发之Android Orm总结

概述在android平台上,常用的数据保存方式有Preference,文件和数据库,针对于数据库操作, 一般都会采用orm框架来解决问题,Android中使用比较广泛的Orm有LiteOrm,Orm...
  • wbwjx
  • wbwjx
  • 2016年06月14日 08:11
  • 1222

最好的5个Android ORM框架

在开发Android应用时,保存数据有这么几个方式, 一个是本地保存,一个是放在后台(提供API接口),还有一个是放在开放云服务上(如 SyncAdapter )。 对于第一种方式,即本地数据存储,如...
  • iefreer
  • iefreer
  • 2014年09月10日 23:14
  • 39770

SugarORM遇到的那些坑

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

SugarOrm使用

Android Studio SugarORM简介要说SugarORM之前不得不说ORM。ORM(Object-Relational Mapping)即对象关系映射模式,是Java开发中常用的技术。...
  • Norwaya007
  • Norwaya007
  • 2016年06月06日 15:37
  • 3375

Sugar ORM 普及文章

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

Sugar ORM——让你不用学SQLite数据库

1.简介让android数据库操作变得异常简单。2.基本配置 配置gradle compile 'com.github.satyan:sugar:1.4' AndroidManifest.xml 配...
  • qq_30124547
  • qq_30124547
  • 2016年10月25日 18:34
  • 1784

Android ORM框架 LiteOrm使用

关于Android ORM框架,之前写过关于GreenDao的使用,在被安利了一篇 Android数据库框架:greenDAO vs LiteOrm ,又看了下LiteOrm的基本使用,很方便,而且...
  • u014099894
  • u014099894
  • 2016年06月05日 10:36
  • 12883

sql2java:一个古老但稳定的轻量级的ORM工具的使用说明

大约在2011年,我刚开始接触java开发的时候 ,接触的第一个ORM工具就是sql2java. 官网地址:https://sourceforge.net/projects/sql2java 这是...
  • 10km
  • 10km
  • 2017年07月14日 00:38
  • 887
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android SugerORM框架的使用
举报原因:
原因补充:

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