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. cogs 2752. [济南集训 2017] 数列运算

    2752. [济南集训 2017] 数列运算 ★★☆   输入文件:sequenceQBXT.in   输出文件:sequenceQBXT.out   简单对比时间限制:1 s   内存限制:512 ...

  2. webstorm卡顿问题处理

    webstorm卡顿问题处理 学习了:http://blog.csdn.net/qq673318522/article/details/50583831 找到WebStorm.exe.vmoption ...

  3. UltraEdit正則表達式介绍及实例

    前几天,有个将Excel中的数据导入到数据库中的需求.原本想到用程序读取Excel中的数据并存储到数据库中,但经一哥们的提醒,说用 EditPlus或UltraEdit这种工具直接将数据拼凑成SQL插 ...

  4. hdu 1722 Cake 数学yy

    题链:http://acm.hdu.edu.cn/showproblem.php? pid=1722 Cake Time Limit: 1000/1000 MS (Java/Others)    Me ...

  5. 一个ibatis映射文件的例子(包含增删改单查,多查)

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-/ ...

  6. 解题报告 之 HDU5317 RGCDQ

    解题报告 之 HDU5317 RGCDQ Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to ...

  7. ubuntu16.04安装破解pycharm

    分两步,首先安装jdk,然后安装并破解pycharm 一.安装jdk 参考:http://blog.csdn.net/yebhweb/article/details/55098189 下载jdk1.8 ...

  8. bzoj5204: [CodePlus 2018 3 月赛]投票统计(离散化+暴力)

    5204: [CodePlus 2018 3 月赛]投票统计 题目:传送门 题解: 谢谢niang老师的一道sui题 离散化之后直接搞啊(打完之后还错了...) 代码: #include<cst ...

  9. [jzoj 5177] [NOIP2017提高组模拟6.28] TRAVEL 解题报告 (二分)

    题目链接: https://jzoj.net/senior/#main/show/5177 题目: 题解: 首先选出的泡泡怪一定是连续的一段 L,R 然后 L 一定属于虫洞左边界中的某一个 R 也同样 ...

  10. 解决Mysql报错:PHP Warning: mysql_connect(): mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication.

    最近我更新了appserv-win32-2.5.10的 PHP 5.2版本到PHP 5.3,在调用http://localhost/phpMyAdmin/时,出现如下错误:PHP Warning:   ...