Sugar ORM——让你不用学SQLite数据库
来源:互联网 发布:淘宝店标logo生成器 编辑:程序博客网 时间:2024/06/12 09:39
1.简介
让android数据库操作变得异常简单。
2.基本配置
配置gradle
compile 'com.github.satyan:sugar:1.4'
AndroidManifest.xml 配置
需要重写Application,配置必要参数
DATABASE:数据库db名字,在/data/data/包名/databases下创建.
VERSION:版本号
QUERY_LOG:log信息
DOMAIN_PACKAGE_NAME:bean所在包路径
<application android:label="@string/app_name" android:icon="@drawable/icon"android:name="com.orm.MyApplication">..<meta-data android:name="DATABASE" android:value="database.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" />..</application>
3.可以使用了
- 在相应的bean目录下创建对象并继承SugarRecord。
public class Book { String title; String author; public Book(){ } public Book(String title, String author){ this.title = title; this.author = author; }}
- CRUD操作
- 插入
Book book=new Book("金瓶梅","Alex");book.save();
- 查询
//1. list条件查询 List<Book> books = Book.find(Book.class, "author = ?", new String{"Alex"});//2. bean条件查询Book.find(Book.class, "name = ? and anthor = ?", "金瓶梅", "Alex");//3. 条件查询,以此是分组,排序,limit查询find(Class<T> type, String whereClause, String[] whereArgs, String groupBy, String orderBy, String limit)//4. 自定义查询,依然支持查询语句查询// Could execute other raw queries too here..Note.executeQuery("VACUUM");// for finders using raw query.List<Note> notes = Note.findWithQuery(Note.class, "Select * from Note where name = ?", "satya");
- 更新
Book book = Book.findById(Book.class, 1);book.title = "十万个为什么";book.author = "小偷";book.save();
- 删除
Book book = Book.findById(Book.class, 1);book.delete();
- 删除全部
List<Book> books = Book.listAll(Book.class);Book.deleteAll(Book.class);
- *
3.注解
- @Table,自定义表明,不以类名为表明,自定义表名,但是你必须定义一个类型为long的id。
- @Ignore,即为忽略此属性,不会再数据库中创建相应的字段。
- @Column,自定义数据库字段名,例子中不会用author作为字段名,而会用anthor_id作为字段名称。
@Tablepublic class Book { private Long id; @Ignore String name; @Column(name = "author_id", unique = true) String author; public Book(){ } public Book(String name, String author){ this.name = name; this.author = author; } public Long getId() { return id; }}
最后的一些原则
- 属性名字遵循驼峰原则,比如shortName,那么在数据库中的字段名字为short_name.真是因为这个原则,数据库的字段名跟类的属性名不一致,如果想保持一致,可以通过注解@Column修改
Sugar支持一种简单的方式进行数据库升级
- 在assets目录下创建一个sugar_upgrades文件夹
- 创建文件用 2.sql 3.sql ……命名。
- 在AndroidManifest.xml中数据库version中升级版本。如果当前版本为3,那么会执行2.sql 3.sql文件
- 在2.sql 3.sql等文件的更新语句示例
alter table BOOK add ID INTEGER;
最后附上官方文档的地址http://satyan.github.io/sugar/index.html
0 0
- Sugar ORM——让你不用学SQLite数据库
- Android开发——SQLite数据库框架Sugar的使用
- android sqlite 数据库 orm
- Sugar ORM android中用于操作数据库的jar包
- sugar orm使用介绍
- Sugar ORM 普及文章
- android Sugar ORM
- Android使用Sugar ORM创建数据库报no such table:...的解决方法
- Android使用Sugar ORM创建数据库报no such table:...的解决方法
- PHP ORM框架与简单代码实现——让OOP与关系数据库更融洽
- PHP ORM框架与简单代码实现—让OOP与关系数据库更融洽
- Android开发——数据库框架Sugar出现no such table xxxx错误的解决办法
- android数据库--sugar
- Sugar ORM no such table BUG
- 让你全面了解SQLite
- 小sugar呀——筛法求素数
- 小sugar呀——归并排序
- LCA——Luogu3398 仓鼠找sugar
- XML是什么,它可以做什么?——XML详解
- 快捷键XML管理和事件管理小结(实例)
- Android学习之——SpannableString和TextView的使用及研究
- Curiously Recurring Template Pattern
- calico在kubernetes中的策略
- Sugar ORM——让你不用学SQLite数据库
- LeetCode 108. Convert Sorted Array to Binary Search Tree
- java学习笔记-窗口绘图(坦克大战)
- java IOUtils copy and flush client
- 自我实践
- Failed to install Hi.apk on device 'emulator-5554': EOF
- 深度学习史上最全总结(文末有福利)
- 博客的使用
- 浅谈EL的隐含对象