本文介绍android中的数据库的增删改查

复习sql语法:

* 增

insert into info (name,phone) values ('wuyudong','111')

* 删

delete from person where name = 'wuyudong'

* 改

update person set number='119' where name='wuyudong'

* 查

select * from person

select * from person where name='wuyudong'

数据库文件是在 /data/data/包名/databases/xxx.db


下面使用代码完成相关的操作

首先定义一个Person类

package com.wuyudong.db.domain;

public class Person {
private int id;
private String name;
private String number; public Person() { } public Person(int id, String name, String number) {
this.id = id;
this.name = name;
this.number = number;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getNumber() {
return number;
} public void setNumber(String number) {
this.number = number;
} }

接着实现相关操作的代码:

package com.wuyudong.db.dao;

import java.util.ArrayList;
import java.util.List; import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import com.wuyudong.db.PersonSQLiteOpenHelper;
import com.wuyudong.db.domain.Person; public class PersonDao {
private PersonSQLiteOpenHelper helper; public PersonDao(Context context) {
helper = new PersonSQLiteOpenHelper(context);
} /**
* 添加一条记录到数据库
*
* @param name
* 姓名
* @param number
* 电话
*/
public void add(String name, String number) {
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("insert into person (name,number) values (?,?)",
new Object[] { name, number });
db.close();
} /**
* 查询记录是否存在
*
* @param name
* 姓名 return true存在, false不存在
*/
public boolean find(String name) {
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from person where name=?",
new String[] { name });
boolean result = cursor.moveToNext();
cursor.close();
db.close();
return result;
} /**
*
* @param name
* 要修改的人的姓名
* @param newnumber
* 新的号码
*/
public void update(String name, String newnumber) {
SQLiteDatabase db = helper.getReadableDatabase();
db.execSQL("update person set number=? where name=?", new Object[]{newnumber,name});
db.close();
} /**
* 删除一条记录
* @param name
*/
public void delete(String name) {
SQLiteDatabase db = helper.getReadableDatabase();
db.execSQL("delete from person where name=?", new Object[]{name});
db.close();
} /**
* 返回全部的数据库信息
* @return
*/
public List<Person> findAll() {
List<Person> persons = new ArrayList<Person>();
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from person", null);
while(cursor.moveToNext()){
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String number = cursor.getString(cursor.getColumnIndex("number"));
Person person = new Person(id, name, number);
persons.add(person);
}
cursor.close();
db.close();
return persons;
} }

完整的测试代码如下:

package com.wuyudong.db.test;

import java.util.List;

import com.wuyudong.db.PersonSQLiteOpenHelper;
import com.wuyudong.db.dao.PersonDao;
import com.wuyudong.db.domain.Person; import android.database.sqlite.SQLiteDatabase;
import android.test.AndroidTestCase; public class TestPersonDB extends AndroidTestCase {
public void testCreateDB() throws Exception {
PersonSQLiteOpenHelper helper = new PersonSQLiteOpenHelper(getContext());
SQLiteDatabase db = helper.getWritableDatabase();
} public void testAdd() throws Exception {
PersonDao dao = new PersonDao(getContext());
dao.add("wuyudong", "666");
} public void testFind() throws Exception {
PersonDao dao = new PersonDao(getContext());
boolean result = dao.find("zhangsan");
assertEquals(true, result);
} public void testUpdate() throws Exception {
PersonDao dao = new PersonDao(getContext());
dao.update("zhangsan", "655");
} public void testDelete() throws Exception {
PersonDao dao = new PersonDao(getContext());
dao.delete("zhangsan");
} public void testFindall() throws Exception {
PersonDao dao = new PersonDao(getContext());
List<Person> persons = dao.findAll();
for (Person person : persons) {
System.out.println(person.toString());
}
}
}

Android SQL语句实现数据库的增删改查的更多相关文章

  1. Android 系统API实现数据库的增删改查和SQLite3工具的使用

    在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...

  2. MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存

    二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...

  3. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  4. Android下利用SQLite数据库实现增删改查

    1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3:  sqlite3 数据库 4   接下来就可以进行数据库的sql语法 ...

  5. 二、SQL语句映射文件(2)增删改查、参数、缓存

    //备注:该博客引自:http://limingnihao.iteye.com/blog/106076 2.2 select 一个select 元素非常简单.例如: Xml代码 收藏代码 <!- ...

  6. MyBatis学习 之 三、SQL语句映射文件(2)增删改查、参数、缓存

    2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id="getStudent" paramet ...

  7. mysql详解常用命令操作,利用SQL语句创建数据表—增删改查

    关系型数据库的核心内容是 关系 即 二维表 MYSQL的启动和连接show variables; [所有的变量] 1服务端启动 查看服务状态 sudo /etc/init.d/mysql status ...

  8. SQL语句映射文件(2)增删改查、参数、缓存

    2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id="getStudent" paramet ...

  9. 用php完成数据库的增删改查

    <?php//一.连接数据库$con = mysql_connect("localhost","root","");//二.验证是否连 ...

随机推荐

  1. Gradle目录解析

    Gradle目录解析 Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自动化构建工具. Gradle这个工具集成了构建,测试,发布和其他,比如软件打 ...

  2. C语言学习012:将代码文件分成多个文件

    如果将所有的代码都写到一个文件中,当对于小项目来说不会有什么问题,但是当它一个很大的工程的时候,如果将所有代码都写到一个文件中,不但开发起来很困难,维护更是头疼,所以我们应该将代码按不同的功能分别建立 ...

  3. 用jquery实现遮罩层

    <div style=" display:none" id="yinying"></div> <script type=" ...

  4. 【UWP】批量修改图标尺寸

    UWP开发中项目用到的图标资源非常多,通常每一种图标都有几种不同的尺寸,一般来说,我的项目所有Package.appxmanifest用到的图标就有40个,通常这些图标都是一样的,只是尺寸大小不一而已 ...

  5. 【C#】在窗体中水平居中的控件,到了XP下不居中的解决办法

    我时不时会遭遇这个操蛋问题,今天得闲研究了一下,解决如下: A.将窗体FormBorderStyle属性改为Fixed系,当然这会导致用户不能拖拉窗口大小,所以你可能需要B计划↓ B.确保在[VS]中 ...

  6. Base64 字符串转图片 问题整理汇总

    前言 最近碰到了一些base64字符串转图片的开发任务,开始觉得没啥难度,但随着开发的进展还是发现有些东西需要记录下. Base64 转二进制 这个在net有现有方法调用: Convert.FromB ...

  7. [译]WebVR技术方案草案

    注:基于官方的.bs规范专用格式进行了翻译,但结果发现无法编译成html格式,所幸基本兼容.markdown格式. 中文翻译项目地址:https://github.com/web3d/webvr-sp ...

  8. 搭建java环境

    操作系统:Win10 java版本:1.8.0_102 1.下载安装java JDK(安装时把jre放在了同级目录) 地址为:F:\Program Files\Java 目录下 2.配置环境变量 此电 ...

  9. 常见的http响应状态码

    http状态返回代码 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. http状态返回代码 代码   说明100   (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到 ...

  10. GC之详解CMS收集过程和日志分析

    2016-08-23   关于GC的算法和垃圾收集器的种类就暂且不说了,网上有大把的资料供参考 话题引入 让我们先简单的看下整个堆年轻代和年老代的垃圾收集器组合(以下配合java8完美支持,其他版本可 ...