litepal更好的操作sqlite3,配置与基本操作
litepal更好的操作sqlite3
配置
在app下的build.gradle中加入
创建litepal.xml配置
在app/src/main下面创建assets,新建litepal.xml
<?xml version="1.0" encoding="utf-8" ?>
<litepal>
<dbname value="BookStore"></dbname>
<version value="2"></version>
<list>
<!-- 映射到类 -->
<mapping class="demo.jq.com.litepaltest.Book"></mapping>
<mapping class="demo.jq.com.litepaltest.Category"></mapping>
</list>
</litepal>
配置LitePalApplication,在AndroidMainfest.xml中
创建Book类
package demo.jq.com.litepaltest;
/**
* @author Jim
*/
public class Book {
private int id;
private String author;
private double price;
/**
* 出版社
*/
private String press;
private int pages;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPress() {
return press;
}
public void setPress(String press) {
this.press = press;
}
}
创建分类类
package demo.jq.com.litepaltest;
/**
* @author jim
*/
public class Category {
private int id;
private String categoryName;
private int categoryCode;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setCategoryName(String categoryName) {
this.categoryName = categoryName;
}
public String getCategoryName() {
return categoryName;
}
public void setCategoryCode(int categoryCode) {
this.categoryCode = categoryCode;
}
public int getCategoryCode() {
return categoryCode;
}
}
这个时候,调用Connector.getDatabase();
就会自动创建数据库。
import org.litepal.tablemanager.Connector;
...
// 初始化创建按钮
Button createDatabase = (Button) findViewById(R.id.create_database);
// 设置点击事件
createDatabase.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// 执行写入数据库操作
Connector.getDatabase();
}
});
添加数据
// 初始化添加数据按钮
Button addData = (Button) findViewById(R.id.add_data);
addData.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Book book = new Book();
book.setName("The Da Vinci Code");
book.setAuthor("Dan Brown");
book.setPages(454);
book.setPrice(16.96);
book.setPress("XinNet");
book.save();
}
});
更改数据
// 更改数据
Button updateData = (Button) findViewById(R.id.update_data);
updateData.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Book book = new Book();
book.setPress("XinHua.Net");
book.update(1);
}
});
删除数据
// 删除数据
Button deleteData = (Button) findViewById(R.id.delete_data);
deleteData.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
DataSupport.deleteAll(Book.class,"id = ?","2");
}
});
查询数据
// 查询数据
Button queryData = (Button) findViewById(R.id.query_data);
queryData.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
List<Book> books = DataSupport.findAll(Book.class);
for (Book book :books) {
Log.d(TAG,"book name is "+book.getName());
Log.d(TAG,"book author is "+book.getAuthor());
Log.d(TAG,"book pages is "+book.getAuthor());
Log.d(TAG,"book price is "+book.getPrice());
Log.d(TAG,"book press is "+book.getPress());
Log.d(TAG,"--------------------------");
}
}
});
更多查询
// 查询数据
Button queryData = (Button) findViewById(R.id.query_data);
queryData.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Book firstBook = DataSupport.findFirst(Book.class);
Log.d(TAG,"the id is "+firstBook.getId());
Log.d(TAG,"book name is "+firstBook.getName());
Log.d(TAG,"book author is "+firstBook.getAuthor());
Log.d(TAG,"book pages is "+firstBook.getAuthor());
Log.d(TAG,"book price is "+firstBook.getPrice());
Log.d(TAG,"book press is "+firstBook.getPress());
Log.d(TAG,"--------------------------");
Book lastBook = DataSupport.findLast(Book.class);
Log.d(TAG,"the id is "+lastBook.getId());
Log.d(TAG,"book name is "+lastBook.getName());
Log.d(TAG,"book author is "+lastBook.getAuthor());
Log.d(TAG,"book pages is "+lastBook.getAuthor());
Log.d(TAG,"book price is "+lastBook.getPrice());
Log.d(TAG,"book press is "+lastBook.getPress());
Log.d(TAG,"--------------------------");
}
});
litepal更好的操作sqlite3,配置与基本操作的更多相关文章
- IOS数据库操作SQLite3使用详解(转)
iPhone中支持通过sqlite3来访问iPhone本地的数据库.具体使用方法如下1:添加开发包libsqlite3.0.dylib首先是设置项目文件,在项目中添加iPhone版的sqlite3的数 ...
- CEPH集群操作入门--配置
参考文档:CEPH官网集群操作文档 概述 Ceph存储集群是所有Ceph部署的基础. 基于RADOS,Ceph存储集群由两种类型的守护进程组成:Ceph OSD守护进程(OSD)将数据作为对象 ...
- 【delphi】delphi操作sqlite3
SQLite SQLite是一个老牌的轻量级别的本地文件数据库,完全免费且开源,不需要安装,无须任何配置,当然,这样管理功能就不是很强大了,但是它的主要应用也是在本地数据库,可以说是最简单好用的嵌入式 ...
- Flask:操作SQLite3(0.1)
Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2 本文介绍了第一次在Flask框架中操作SQLite3数据库的测试,参考了官网的文档Using SQLite 3 wit ...
- 【RAC】 RAC For W2K8R2 安装--操作系统环境配置 (二)
[RAC] RAC For W2K8R2 安装--操作系统环境配置 (二) 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可 ...
- iOS: 学习笔记, 使用FMDatabase操作sqlite3
使用FMDatabase操作sqlite3数据库非常简单和方便 // // main.m // iOSDemo0602_sqlite3 // // Created by yao_yu on 14-6- ...
- OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 1.操作系统环境配置
1.OpenStack示例的架构介绍 1.1 各节点介绍 (1)控制节点(controller)控制节点(controller)上运行身份服务,镜像服务,计算节点管理,网络管理,各种网络代理和仪表板. ...
- VC++ 6.0 sqlite3 配置、测试
/************************************************************************************* * VC++6.0 sql ...
- MongoDB的安装配置、基本操作及Perl操作MongoDB
MongoDB的安装配置.基本操作及Perl操作MongoDB http://www.myhack58.com/Article/60/63/2014/42353.htm
随机推荐
- ZOJ 3435
求(1,1,1)至(x,y,z)的互质个数. 即求(0,0,0)到(x-1,y-1,z-1)互质个数. 依然如上题那样做.但很慢...好像还有一个分块的思想,得学学. #include <ios ...
- 【Android】桌面歌词悬浮效果简单实现
在使用"网易云音乐"的时候,发现有一个显示"桌面歌词"的功能,于是就想着自己实现下.查了下资料,是用WindowManage实现的.实现过程中也出现了些问题,看 ...
- (手冊)Animation 之 使用Animation View
观看游戏物体上的动画(Viewing Animations on a GameObject) Animation View 是与 Hierarchy View.Scene View和Inspector ...
- bzoj3436: 小K的农场(差分约束)
3436: 小K的农场 题目:传送门 题解: 查分基础: t==1 a>=b+c t==2 b>=a-c t==3 a>=b+0 b>=a+0 跑最长路一A 代码: #i ...
- HttpClient get和HttpClient Post请求的方式获取服务器的返回数据
1.转自:https://blog.csdn.net/alinshen/article/details/78221567?utm_source=blogxgwz4 /* * 演示通过HttpClie ...
- JTextArea 加入滚动条
JTextArea texA; JScrollPane scroll; TextEdit(String name){ super(name); init(); } void init(){ this. ...
- (转载)ListView与ScrollView冲突的4种解决方案
问题解决方案1.手动设置ListView高度 经过测试发现,在xml中直接指定ListView的高度,是可以解决这个问题的,但是ListView中的数据是可变的,实际高度还需要实际测量.于是手动 ...
- vue+Element实现tree树形数据展示
组件: Element(地址:http://element.eleme.io/#/zh-CN/component/tree):Tree树形控件 <el-tree ref="expand ...
- 【原创】rman 全库备份脚本
rman 全库备份脚本 run { allocate channel d1 type disk; allocate channel d2 type disk; backup full database ...
- PCL例程调试错误之缺少flann-config.cmake
编译环境和PCL版本为:win7-x64 + MSVC2013 + PCL1.8.0-win32-MSVC2013. 调试PCL官网例程Cluster Recognition and 6DOF Pos ...