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,配置与基本操作的更多相关文章

  1. IOS数据库操作SQLite3使用详解(转)

    iPhone中支持通过sqlite3来访问iPhone本地的数据库.具体使用方法如下1:添加开发包libsqlite3.0.dylib首先是设置项目文件,在项目中添加iPhone版的sqlite3的数 ...

  2. CEPH集群操作入门--配置

      参考文档:CEPH官网集群操作文档   概述 Ceph存储集群是所有Ceph部署的基础. 基于RADOS,Ceph存储集群由两种类型的守护进程组成:Ceph OSD守护进程(OSD)将数据作为对象 ...

  3. 【delphi】delphi操作sqlite3

    SQLite SQLite是一个老牌的轻量级别的本地文件数据库,完全免费且开源,不需要安装,无须任何配置,当然,这样管理功能就不是很强大了,但是它的主要应用也是在本地数据库,可以说是最简单好用的嵌入式 ...

  4. Flask:操作SQLite3(0.1)

    Windows 10家庭中文版,Python 3.6.4,Flask 1.0.2 本文介绍了第一次在Flask框架中操作SQLite3数据库的测试,参考了官网的文档Using SQLite 3 wit ...

  5. 【RAC】 RAC For W2K8R2 安装--操作系统环境配置 (二)

    [RAC] RAC For W2K8R2 安装--操作系统环境配置 (二) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可 ...

  6. iOS: 学习笔记, 使用FMDatabase操作sqlite3

    使用FMDatabase操作sqlite3数据库非常简单和方便 // // main.m // iOSDemo0602_sqlite3 // // Created by yao_yu on 14-6- ...

  7. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 1.操作系统环境配置

    1.OpenStack示例的架构介绍 1.1 各节点介绍 (1)控制节点(controller)控制节点(controller)上运行身份服务,镜像服务,计算节点管理,网络管理,各种网络代理和仪表板. ...

  8. VC++ 6.0 sqlite3 配置、测试

    /************************************************************************************* * VC++6.0 sql ...

  9. MongoDB的安装配置、基本操作及Perl操作MongoDB

    MongoDB的安装配置.基本操作及Perl操作MongoDB http://www.myhack58.com/Article/60/63/2014/42353.htm

随机推荐

  1. 利用VisualVM监视远程JVM

    VisualVM介绍 VisualVM是集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump.Thread Dump.内存对象实例情况.GC ...

  2. Android 自己定义RecyclerView 实现真正的Gallery效果

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38173061 .本文出自:[张鸿洋的博客] 上一篇博客我使用自己定义Horizo ...

  3. Android使用有道翻译API实如今线翻译功能

    在Android应用中,加入在线翻译的功能,这里调用的是有道翻译的API. 使用有道翻译API.首先要申请一个key,申请地址为:path=data-mode">有道翻译API申请地址 ...

  4. Maximum Bipartite Matching

    算法旨在用尽可能简单的思路解决这个问题.理解算法也应该是一个越看越简单的过程,当你看到算法里的一串概念,或者一大坨代码,第一感觉是复杂,此时最好还是从样例入手.通过一个简单的样例,并编程实现,这个过程 ...

  5. Ubuntu新建用户并加入SUDO组

    Ubuntu新建用户并加入SUDO组 新建用户: adduser xxxx 加入用户组: usermod -aG sudo username

  6. 2.QT字符串及一些基本操作

    mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { c ...

  7. 关于hexo markdown添加的图片在github page中无法显示的问题

    title: 关于hexo markdown添加的图片在github page中无法显示的问题 date: 2018-03-31 00:21:18 categories: methods tags: ...

  8. 修改echarts环形图的牵引线及文字位置

    修改echarts环形图的牵引线及文字位置,下面代码及效果不仅如此,也包含了其它的效果哦.有问题可以留言. 根据echarts官方示例修改效果: 官方示例图: 修改效果图: 直接上代码:其它不多说. ...

  9. jQuery EasyUI 右键菜单--关闭标签/选项卡

    目录结构: noContextMenu.js 文件内容如下: $(function(){ //屏蔽右键菜单 $(document).bind("contextmenu", func ...

  10. MyBatis数据持久化(一)准备工作

    MyBatis简介 mybatis的前生是ibatis,它是一款非常优秀的java持久层框架,所有sql语句写在配置文件中,和另外一款比较知名的orm框架hibernate比起来显得更加小巧灵活,也是 ...