LitePal学习笔记
2017-01-19 22:02
232 查看
一、配置环境
1.添加依赖dependencies { compile 'org.litepal.android:core:1.4.1' }
2.在assets文件夹中添加litepal.xml文件
<?xml version="1.0" encoding="utf-8"?> <litepal> <dbname value="book_store"></dbname> <version value="1" ></version> <list> </list> </litepal>
3.配置Application
修改AndroidManifest.xml
<application android:name="org.litepal.LitePalApplication" ...
二、创建数据库
1.定义一个javabean,Book类package com.momo.litepaltest; import org.litepal.crud.DataSupport; /** * Created by Administrator on 2017/1/18. */ public class Book extends DataSupport{ private int id; private String name; private String author; private int pages; private double price; public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setAuthor(String author) { this.author = author; } public void setPages(int pages) { this.pages = pages; } public void setPrice(double price) { this.price = price; } public int getId() { return id; } public String getName() { return name; } public String getAuthor() { return author; } public int getPages() { return pages; } public double getPrice() { return price; } @Override public String toString() { return "Book{" + "id=" + id + ", name='" + name + '\'' + ", author='" + author + '\'' + ", pages=" + pages + ", price=" + price + '}'; } }
2.在litepal.xml文件中添加mapping标签
<?xml version="1.0" encoding="utf-8"?> <litepal> <dbname value="book_store"></dbname> <version value="1" ></version> <list> <mapping class="com.momo.litepaltest.Book"></mapping> </list> </litepal>
3.使用Litepal.getDatabase()即可创建数据库。
4.更新时只需要直接修改Book类,并且修改litepal.xml文件中的version标签,将version加1。如果添加新的数据库,需要在list标签下继续创建一个mapping。
三、插入数据
1将javabean类继承自DataSupport。public class Book extends DataSupport{ ...... }
2.创建Book对象,调用book.save()方法将该条数据存入数据库中。
btn_insert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Book book = new Book(); book.setName("Android第一行代码"); book.setAuthor("郭霖"); book.setId(15); book.setPages(650); book.setPrice(79.99); book.save(); Toast.makeText(MainActivity.this, "insert successed!", Toast.LENGTH_SHORT).show(); } });
四、更新数据
1.调用book.updateAll()方法。btn_update.setOnClickListener(new View.OnClickLi 4000 stener() { @Override public void onClick(View v) { Book newBook = new Book(); newBook.setPrice(20.00); newBook.setPages(200); newBook.updateAll("id = ?","5"); } });
2.updateAll()不加参数表示对所有元素执行更新操作。
3.将某列置为默认值
Book book = new Book(); book.setToDefault("pages"); book.updateAll();
将所有书的页数都置为0.
五、删除数据
1.调用DataSupport.delteAll()方法btn_delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DataSupport.deleteAll(Book.class,"id = ?" , "4"); Toast.makeText(MainActivity.this, "delete success", Toast.LENGTH_SHORT).show(); } });
2.deleteAll()不加参数表示删除所有元素
六、查询数据
1.查询所有记录DataSupport.findAll(Book.class);btn_query.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { StringBuilder builder = new StringBuilder(); List<Book> bookList = DataSupport.findAll(Book.class); for(Book book: bookList){ builder.append(book.toString() + "\n"); } tv_data.setText(builder.toString()); Toast.makeText(MainActivity.this, "query result", Toast.LENGTH_SHORT).show(); } });
2.查询第一条记录
Book firstBool = DataSupport.findFirst(Book.class);
3.查找最后一条记录
Book lastBook = DataSupport.findLast(Book.class);
4.select查找固定列
List<Book> books = DataSupport.select("name","author").find(Book.class);
5.where用于条件查询
List<Book> books = DataSupport.where("pages > ?" , "400").find(Book.class);
6.order排序(desc从大到小,asc从小到大)
List<Book> books = DataSupport.order("price desc").find(Book.class);
7.limit限定查询记录数目
List<Book> books = DataSupport.limit(3).find(Book.class);
8.offset设置偏移量
List<Book> books = DataSupport.limit(3).offset(1).find(Book.class);
9.组合查询
List<Book> books = DataSupport.limit(3) .offset(1) .select("name","author") .order("price desc") .find(Book.class);
相关文章推荐
- Windows核心编程笔记(十三)Windwos内存体系结构
- elasticsearch 第三篇(安装篇)
- 我的2016
- 硬盘与磁盘的盘片、盘面、磁道、扇区
- 最近编译tolua_runtime安卓编译错误
- 机器学习实战--KNN
- JZOJ 1251. 收费站
- HDU-3308-LCIS
- 入门训练 Fibonacci数列
- java中时间的比较
- 当window.btoa()带上字符串遇上IE10-
- 用javascript写一个显示时间差 几分钟前 几小时前 几天前 几周前 大于一个月显示日期
- IO多路复用适用场合
- 服务 Service 启动方式【经典案例】
- Elasticsearch基础教程ES
- HDU - 3037 Saving Beans (数论,组合数取模,lucas定理)
- vim ,suid,sgid,sticky含义
- Android 数字跳动显示:DancingNumberView
- Java 多线程:守护线程和非守护线程
- 框架集