`
huiqinbo
  • 浏览: 344744 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

无废话Android 系列教程34 [使用系统api实现SQLite增删改查&&测试]

 
阅读更多

声明: 此代码依然在项目 “数据库_SqlLite” 项目基础上开发,如果没有此项目代码,请到33课教程的附件中下载!

 

1. com.andy.db.dao 包下新建立类 PersonDao2.java

package com.andy.db.dao;

import java.util.ArrayList;
import java.util.List;

import com.andy.db.PersonSQLiteOpenHelper;
import com.andy.db.domain.Person;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class PersonDao2 {
	private PersonSQLiteOpenHelper helper;
	public PersonDao2(Context context){
		helper = new PersonSQLiteOpenHelper(context);
	}
	
	/*
	 * 插入用户名和手机号到SQLite数据库
	 * 
	 * the row ID of the newly inserted row, or -1 if an error occurred
	 */
	public long addPerson(String name, String number){
		
		//此时就获取到了数据库
		SQLiteDatabase db = helper.getWritableDatabase();
		//db.execSQL("insert into person (name,number) values (?,?)", new Object[]{name,number});
		ContentValues values = new ContentValues();
		values.put("name", name);
		values.put("number", number);
		long row_id = db.insert("person", null, values);
		db.close();
		return row_id;
	}
	
	/**
	 * 删除一条数据,按用户名的条件
	 * @param name
	 * 
	 * WhereClause :the optional WHERE clause to apply when deleting. Passing null will delete all rows.
	 */
	public int deletePerson(String name){
		SQLiteDatabase db = helper.getWritableDatabase();
//		db.execSQL("delete from person where name =?", new Object[]{name});
		int row_id = db.delete("person", "name=?", new String[]{name});
		db.close();
		
		return row_id;
	}
	
	
	/**
	 * 修改一条数据,按用户名的条件
	 * @param name
	 * @param number
	 */
	public int updatePerson(String name, String number){
		SQLiteDatabase db = helper.getWritableDatabase();
//		db.execSQL("update person set number = ? where name = ?", new Object[]{name,number} );
		ContentValues values = new  ContentValues();
		values.put("number", number);
		
		int row_id = db.update("person", values, "name=?", new String[]{name});
		db.close();
		
		return row_id;
	}
	
	/**
	 * 查询一条数据,按用户名的条件
	 * @param name
	 * @param number
	 * selection : A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given table.
	 * selectionArgs:  You may include ?s in selection, which will be replaced by the values from selectionArgs, in order that they appear in the selection. The values will be bound as Strings.
	 */
	public boolean findPerson(String name){
		SQLiteDatabase db = helper.getWritableDatabase();
//		Cursor cursor = db.rawQuery("select * from person where name=?", new String[]{name});
		Cursor cursor = db.query("person", new String[]{"id", "name", "number"}, "name=?", new String[]{name}, null, null, null);
		boolean result = cursor.moveToNext();
		cursor.close();
		db.close();
		return result;
	}
	
	
	public List<Person> findAllPerson(){
		SQLiteDatabase db = helper.getWritableDatabase();
//		Cursor cursor = db.rawQuery("select * from person", null);
		Cursor cursor = db.query("person", new String[]{"id","name","number"}, null, null, null, null, null);
		List<Person> persons = new ArrayList<Person>(); 
		Person person;
		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 = new Person(id,name,number);
			persons.add(person);
		}
		cursor.close();
		db.close();
		return persons;
	}

}

 

2.  com.andy.db.test 包下创建TestPersonDao2.java

package com.andy.db.test;

import java.util.List;

import com.andy.db.PersonSQLiteOpenHelper;
import com.andy.db.dao.PersonDao2;
import com.andy.db.domain.Person;

import android.test.AndroidTestCase;

public class TestPersonDao2 extends AndroidTestCase {
	
public PersonDao2 pd;
	
	/**
	 * getContext() 是测试框架给提供的上下文件
	 * 
	 * 来源:android.test.AndroidTestCase.getContext()
	 */
	public void testCreatePersonDb(){
		PersonSQLiteOpenHelper db = new PersonSQLiteOpenHelper(getContext());
		//打开或创建一个可写的数据库
		db.getWritableDatabase();
	}
	
	public void testAddPerson(){
		pd = new PersonDao2(getContext());
		pd.addPerson("张三", "123456789");
	}
	
	public void testDeletePerson(){
		pd = new PersonDao2(getContext());
		pd.deletePerson("张三");
	}
	
	public void testUpdatePerson(){
		pd = new PersonDao2(getContext());
		pd.updatePerson("李四", "987654321");
	}

	public void testFindPerson(){
		pd = new PersonDao2(getContext());
		boolean result = pd.findPerson("李四");
		assertEquals(true, result);
	}
	
	public void testFindAll(){
		pd = new PersonDao2(getContext());
		List<Person> persons = pd.findAllPerson();
		
		for(Person p: persons){
			System.out.println(p.toString());
		}
	}

}

 

3.  测试:  在DDMS模式下,将database数据库导出到桌面,然后使用Navicat或其它工具将其导入/打开, 这时就可以随时查看数据库了

 

   1) 将项目内的数据库导出到本地:

   

 

 

 

   2) 使用Navicat 工具导入Person.db数据库

  

 

   3) 查看Person 数据表



 

 

 5. 下载源代码,请参照附件 → [数据库_SqlLite.rar]

 

  • 大小: 853 KB
  • 大小: 255.7 KB
  • 大小: 321.7 KB
分享到:
评论

相关推荐

    android之sqlite实现增删改查

    "Android之SQLite实现增删改查"这个标题表明了本文将介绍如何在Android平台中使用SQLite数据库来实现增删改查操作。 描述解释 "这是学习及开发SQlite的一个很好的例子,含有其增删改查的所有功能附有完整的代码可以...

    Android+SQlite《学生信息管理系统》(增删改查)源代码

    Android+SQlite 简单的《学生信息管理系统》(实现基本增删改查) 此代码中还有与其相对应的apk文件(在SIMS/bin目录中),大家可先行放手机上看一下效果。 希望对初学者有一定的帮助。(本人自己编写)

    无废话Android 系列教程33 [Adroid下SQLite数据库增删改查&测试]

    本教程将深入讲解如何在Android环境下进行SQLite数据库的增删改查操作以及相关的测试方法。 首先,我们需要创建一个SQLite数据库。在Android中,我们通常通过继承SQLiteOpenHelper类来实现这个功能。...

    IOS sqlite 完成增删改查

    本文将详细介绍如何在iOS应用中使用SQLite实现UI界面的增、删、改、查功能,并对SQLite进行简单的封装。 首先,我们需要了解SQLite的基本概念。SQLite是一个自包含、无服务器、零配置、事务型的SQL数据库引擎,可以...

    Android储存---SQLite数据库的简单使用,实现增删改查

    本教程将深入讲解如何在Android中使用SQLite数据库进行基本的增删改查操作。 首先,我们需要在Android项目中创建一个SQLite数据库。这通常通过继承`SQLiteOpenHelper`类来完成。`SQLiteOpenHelper`有两个关键的方法...

    Android studio Android寄存系统,登录注册,增删改查,sqlite

    **增删改查操作** 在Android应用与SQLite交互时,CRUD(Create, Read, Update, Delete)操作是最基本的数据操作: 1. **创建(Create)**:使用`SQLiteOpenHelper`的`onCreate()`方法创建数据库和表。例如,通过`...

    Kotlin实现简单的学生信息管理系统,SQLite数据库,增删改查

    根据Android数据存储的内容,综合应用SharedPreferences和SQLite数据库实现一个用户信息管理系统,强化对SharedPreferences的理解的使用,熟练掌握SQLite的操作。 要求: 1. 巩固Android应用开发工具(Eclipse或者...

    C# SQLite3增删改查Demo

    本篇将重点介绍如何使用C#语言进行SQLite3的增删改查操作,这对于初学者来说是一次极好的实践机会。 首先,我们要理解C#与SQLite3的集成。C#通过SQLite的.NET数据提供程序(System.Data.SQLite)来与SQLite交互。...

    android的sqlite增删改查示例

    在这个"android的sqlite增删改查示例"中,我们将深入探讨如何在Android应用中集成SQLite进行基本的数据操作。 首先,Android SDK提供了一个SQLiteOpenHelper类,它是所有SQLite操作的基础。这个类负责创建、升级和...

    sqlite增删改查

    本教程将详细介绍如何在Android中利用SQLite进行数据库的增删改查操作,以及介绍两种不同的实现方法。 ### 一、SQLite数据库基本概念 SQLite数据库由三部分组成:SQLite引擎、SQL语句和SQLite数据库文件。在...

    Android数据库的SQLite增删改查

    本教程将通过一个名为"SqliteTestDemo"的示例项目,深入讲解如何在Android中进行SQLite数据库的增、删、改、查操作。 首先,我们需要创建一个SQLite数据库。在Android中,我们通常会创建一个`SQLiteOpenHelper`的...

    android利用sqlite实现增删改查

    在本教程中,我们将深入探讨如何在Android应用中利用SQLite来实现数据的增、删、改、查(CRUD)操作。 首先,我们需要在Android项目中添加对SQLite的支持。这通常涉及到创建一个SQLiteOpenHelper的子类,这个类是...

    Android SQLite 增删改查操作实例

    本实例将详细讲解如何在Android中进行SQLite数据库的增删改查(CRUD)操作。 **创建SQLite数据库** 首先,我们需要创建一个SQLite数据库。在Android中,我们通常通过继承`SQLiteOpenHelper`类来实现。这个类提供了...

    Android中Sqlite数据库跟Listview对数据进行增删改查(附带登录注册功能)

    Android Stdio开发的一个应用,运用Sqlite数据库和listview实现在前端进行对Sqlite的增删改查,数据库中的数据显示在Listview上,在Editetext上输入关键字会查询带有关键字的数据,点击Listview的每一行都可以对该行...

    labview控制sqlite的增删改查

    在LabVIEW中控制SQLite,可以通过编写VIs(Virtual Instruments)来实现对SQLite数据库的增删改查操作。 **1. 创建SQLite数据库连接** 在LabVIEW中,首先需要创建一个SQLite数据库连接。这通常通过调用SQLite的动态...

    相当简单Android SQLite数据库增删改查【自己写的】

    相当简单Android SQLite数据库增删改查,绝对适合新手,包您一看就会, 1.这是我照着网上的资料和帮助手册写的; 2.数据库的增删改查都涉及到了; 3.导入项目,运行,然后 在终端进入数据库,命令为 adb shell cd ...

    sqlite 增删改查简单示例

    在本示例中,我们将探讨如何使用 SQLite 进行基本的数据库操作,包括增(添加数据)、删(删除数据)、改(修改数据)和查(查询数据)。 1. 创建数据库和表 首先,你需要创建一个 SQLite 数据库。这可以通过编写 ...

    Android使用SQLite数据库进行增删改查详细案例

    本案例将详细介绍如何在Android应用中使用SQLite进行增(Create)、删(Delete)、改(Update)和查(Read)操作。 1. **创建SQLite数据库** 在Android中,我们需要创建一个继承自`SQLiteOpenHelper`的类,这个类...

    EFCore+WebAPi增删改查

    在本项目中,"EFCore+WebApi增删改查"是一个使用Entity Framework Core(简称EFCore)和Web API技术构建的.NET应用示例。这个框架主要用于演示如何通过Web服务接口进行数据操作,如添加、删除、修改和查询,前端展示...

Global site tag (gtag.js) - Google Analytics