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

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

 
阅读更多

今天是中秋节,心情不太好,于是乎写会代码吧.

 

1 建立一个新包com.andy.db.dao, 

2. 建立类PersonDao.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.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class PersonDao {
	private PersonSQLiteOpenHelper helper;
	public PersonDao(Context context){
		helper = new PersonSQLiteOpenHelper(context);
	}
	
	/*
	 * 插入用户名和手机号到SQLite数据库
	 */
	public void addPerson(String name, String number){
		
		//此时就获取到了数据库
		SQLiteDatabase db = helper.getWritableDatabase();
		db.execSQL("insert into person (name,number) values (?,?)", new Object[]{name,number});
		db.close();
	}
	
	/**
	 * 删除一条数据,按用户名的条件
	 * @param name
	 */
	public void deletePerson(String name){
		SQLiteDatabase db = helper.getWritableDatabase();
		db.execSQL("delete from person where name =?", new Object[]{name});
		db.close();
	}
	
	
	/**
	 * 修改一条数据,按用户名的条件
	 * @param name
	 * @param number
	 */
	public void updatePerson(String name, String number){
		SQLiteDatabase db = helper.getWritableDatabase();
		db.execSQL("update person set number = ? where name = ?", new Object[]{name,number} );
		db.close();
	}
	
	/**
	 * 查询一条数据,按用户名的条件
	 * @param name
	 * @param number
	 */
	public boolean findPerson(String name){
		SQLiteDatabase db = helper.getWritableDatabase();
		Cursor cursor = db.rawQuery("select * from person where name=?", new String[]{name});
		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);
		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;
	}

}

 

3.  建立一个新包com.andy.db.domain

4. 在其下面创建一个新类Person.java

package com.andy.db.domain;

public class Person {
	private int id;
	private String name;
	private String number;
	
	public Person(int id, String name, String number){
		this.id = id;
		this.name= name;
		this.number = number;
	}
	
	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + ", 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;
	}
	
	

}

 

5. 在测试类里面增加新的测试方法:

package com.andy.db.test;

import java.util.List;

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

import android.test.AndroidTestCase;
/**
 * 运行过程如果报以下错误,说明没有配置测试环境
 * 数据库_SqlLite does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml
 * @author HuiQinBo
 *
 */
public class TestPersonDB extends AndroidTestCase {
	public PersonDao pd;
	
	/**
	 * getContext() 是测试框架给提供的上下文件
	 * 
	 * 来源:android.test.AndroidTestCase.getContext()
	 */
	public void testCreatePersonDb(){
		PersonSQLiteOpenHelper db = new PersonSQLiteOpenHelper(getContext());
		//打开或创建一个可写的数据库
		db.getWritableDatabase();
	}
	
	public void testAddPerson(){
		pd = new PersonDao(getContext());
		pd.addPerson("王五", "123456789");
	}
	
	public void testDeletePerson(){
		pd = new PersonDao(getContext());
		pd.deletePerson("张三");
	}
	
	public void testUpdatePerson(){
		pd = new PersonDao(getContext());
		pd.updatePerson("王五", "987654321");
	}

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

 

 

6 效果图:



 

7项目源代码:请看附件

 

 

 

 

 

  • 大小: 90.7 KB
分享到:
评论

相关推荐

    Android远程调用sql server实现增删查改

    ### Android远程调用SQL Server实现增删查改 #### SQL Server环境的搭建 为了实现Android应用与SQL Server数据库之间的远程通信,首先需要确保SQL Server环境的正确搭建。本例使用的是SQL Server 2008 R2 和 jTDS ...

    android sqlite数据的备份与还原

    在Android平台上,SQLite数据库是应用数据存储的主要方式之一。SQLite是一个轻量级的、嵌入式的、关系型数据库,它提供了强大的数据管理功能。当开发者需要对应用中的SQLite数据库进行备份与还原时,通常需要自定义...

    Android-SQLite实例实现简易词典

    在Android开发中,SQLite是一个非常重要的组件,它是一个轻量级的数据库系统,用于存储和管理应用程序中的结构化数据。本实例"Android-SQLite实例实现简易词典"旨在教你如何利用SQLite创建一个简单的词典应用,其中...

    adroid中将mysql数据库中的数据读取到本地txt文件上时,出现数据库连接错误

    在Android开发中,有时我们需要将MySQL数据库中的数据导出到本地TXT文件,以便进行数据分析或备份。然而,这个过程可能会遇到数据库连接错误的问题。这里,我们将深入探讨如何正确地实现这个功能,以及如何解决可能...

    Android Studio 入门级教程(高清版)

    Android Studio是Google官方推出的集成开发环境(IDE),专为Android应用程序开发设计。它以其高效、易用和功能强大而受到广大开发者喜爱。本教程旨在帮助初学者了解并掌握Android Studio的基础使用方法,从而踏入...

    android-sdk11 adroid 3 A

    android-11 adroid 3 android sdk

    android-sdk11 adroid 3 D

    android-11 adroid 3 android sdk

    android-sdk11 adroid 3 E

    android-11 adroid 3 android sdk

    android 数据库操作demo

    在这个"android 数据库操作demo"中,我们将深入探讨如何在Android环境下使用SQLite进行数据库操作,包括创建数据库、创建表、插入数据、查询数据、更新数据以及删除数据等核心概念。 1. **创建数据库**: 在...

    android-sdk11 adroid 3 B

    android-11 adroid 3 android sdk

    android-sdk11 adroid 3 C

    android-11 adroid 3 android sdk

    Android Sqlite3 学习笔记.

    它提供了各种方法来执行增、删、查、改操作。例如,`execSQL()`方法可以执行任意的SQL语句,而`insert()`, `delete()`, `update()`和`query()`则提供了一种更简便的方式来执行常见的数据库操作。`insert()`用于添加...

    AndroidStudio教程从入门到精通.[汇编].pdf

    由于提供的文件内容包含大量的技术术语和代码片段,我将以此为基础,详细解释Android Studio教程中包含的知识点,确保满足1000字以上的要求。 ### Android Studio开发环境 Android Studio是谷歌官方推出的Android...

    基于android系统的日程管理应用

    首先,数据库的增删改查是日程管理应用的基础。Android系统支持SQLite数据库,这是一种轻量级的嵌入式关系型数据库,适合于移动设备。开发者需要了解如何创建数据库表,插入、更新、删除和查询数据。例如,创建一个...

    android studio课程设计作业PPT+设计文档+可运行源代码+设计思路.rar

    Android Studio是Google推出的一款强大的集成开发环境(IDE),专为Android应用开发而设计,它提供了丰富的功能,使得开发者可以高效地构建、测试和调试应用程序。 首先,"PPT"部分通常包含课程设计的理论讲解和...

    adroid Serpor 测试工具

    在IT行业中,尤其是在移动设备和嵌入式系统的测试与调试领域,`adroid Serpor 测试工具` 提供了一个高效且精准的解决方案。这个工具主要针对手机的串口(Serial Port)和网口(Network Port)进行压力测试,旨在检测...

    android开发资料大全

    Android数据库最基础的一个例子(本人已测试,可以运行) 为launcher添加一个仿Mac的dock(附源码) 使用Gallery实现Tab 仿QQ--tab切换动画实例 Android 小项目之---猜扑克牌游戏 (附源码) fleep滑动切换tab(切换...

    Android代码-日记系统源码数据库的基本操作.zip

    在Android平台上,数据库是应用程序存储数据的重要方式,尤其在开发日记系统这样的应用时,数据库扮演着核心角色。本文将深入探讨“Android代码-日记系统源码数据库的基本操作”这一主题,解析相关源码,理解如何在...

    基于Android的教师小能手app系统(Android studio毕业设计+Adroid课程设计+mysql)A759

    4)我的学生:在新增我的班级后,接着新增我的班级里的科目,然后可以在新增的科目中进行学生相关信息的增删改查,学生的相关信息:名字、性别、家长号码、手机号码、学生成绩;可以根据学生姓名查询当前科目的成绩...

Global site tag (gtag.js) - Google Analytics