`
mickey_hou
  • 浏览: 246214 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android数据库基本操作 SQLite

阅读更多
1.Person.java

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





2.SQLOperate.java

package com.mrzhu.sqltite; 
 
import java.util.List; 
 
/** 
* 增删改查 
* @author ZLQ 

*/ 
public interface SQLOperate { 
    public void add(Person p); 
    public void delete(int id); 
    public void updata(Person p); 
    public List<Person> find(); 
    public Person findById(int id); 





3.DBOpenHelper.java

[html] 
package com.mrzhu.sqltite; 
 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
 
/** 
* 助手类 
* @author ZLQ 

*/ 
public class DBOpneHelper extends SQLiteOpenHelper { 
 
    private static final int VERSION = 1;//版本 
    private static final String DB_NAME = "people.db";//数据库名 
    public static final String STUDENT_TABLE = "student";//表名 
    public static final String _ID = "_id";//表中的列名 
    public static final String NAME = "name";//表中的列名 
    //创建数据库语句,STUDENT_TABLE,_ID ,NAME的前后都要加空格 
    private static final String CREATE_TABLE = "create table " + STUDENT_TABLE + " ( " + _ID + " Integer primary key autoincrement," + NAME + " text)"; 
     
    public DBOpneHelper(Context context) { 
        super(context, DB_NAME, null, VERSION); 
    } 
 
    //数据库第一次被创建时调用  
    @Override 
    public void onCreate(SQLiteDatabase db) { 
        db.execSQL(CREATE_TABLE); 
    } 
 
    //版本升级时被调用  
    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
 
    } 
 




4.SQLOperateImpl.java

package com.mrzhu.sqltite; 
 
import java.util.ArrayList; 
import java.util.List; 
 
import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
 
public class SQLOperateImpl implements SQLOperate{ 
 
    private DBOpneHelper dbOpenHelper; 
     
    public SQLOperateImpl(Context context) { 
        dbOpenHelper = new DBOpneHelper(context); 
    } 
 
    /** 
     * 增,用insert向数据库中插入数据 
     */ 
    public void add(Person p) { 
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); 
        ContentValues values = new ContentValues(); 
        values.put(DBOpneHelper._ID, p.getId()); 
        values.put(DBOpneHelper.NAME, p.getName()); 
        db.insert(DBOpneHelper.STUDENT_TABLE, null, values); 
    } 
 
    /** 
     * 删,通过id删除数据 
     */ 
    public void delete(int id) { 
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); 
        db.delete(DBOpneHelper.STUDENT_TABLE, DBOpneHelper._ID + "=?", new String[]{String.valueOf(id)}); 
    } 
 
    /** 
     * 改,修改指定id的数据 
     */ 
    public void updata(Person p) { 
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); 
        ContentValues values = new ContentValues(); 
        values.put(DBOpneHelper._ID, p.getId()); 
        values.put(DBOpneHelper.NAME, p.getName()); 
        db.update(DBOpneHelper.STUDENT_TABLE, values, DBOpneHelper._ID + "=?", new String[]{String.valueOf(p.getId())}); 
    } 
 
    /** 
     * 查,查询表中所有的数据 
     */ 
    public List<Person> find() { 
        List<Person> persons = null; 
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); 
        Cursor cursor = db.query(DBOpneHelper.STUDENT_TABLE, null, null, null, null, null, null); 
        if(cursor != null){ 
            persons = new ArrayList<Person>(); 
            while(cursor.moveToNext()){ 
                Person person = new Person(); 
                int _id = cursor.getInt(cursor.getColumnIndex(DBOpneHelper._ID)); 
                String name = cursor.getString(cursor.getColumnIndex(DBOpneHelper.NAME)); 
                person.setId(_id); 
                person.setName(name); 
                persons.add(person); 
            } 
        } 
        return persons; 
    } 
 
    /** 
     * 查询指定id的数据 
     */ 
    public Person findById(int id) { 
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); 
        Cursor cursor = db.query(DBOpneHelper.STUDENT_TABLE, null, DBOpneHelper._ID + "=?", new String[]{String.valueOf(id)}, null, null, null); 
        Person person = null; 
        if(cursor != null && cursor.moveToFirst()){ 
            person = new Person(); 
            int _id = cursor.getInt(cursor.getColumnIndex(DBOpneHelper._ID)); 
            String name = cursor.getString(cursor.getColumnIndex(DBOpneHelper.NAME)); 
            person.setId(_id); 
            person.setName(name); 
        } 
        return person; 
    } 





5.Test.java

在AndroidManifest.xml中的<application></application>外添加
(targetPackage是当前工程的包名)

<instrumentation
android:targetPackage="com.mrzhu.sqltite"
android:name="android.test.InstrumentationTestRunner">
</instrumentation>

在<application></application>中添加<uses-library android:name="android.test.runner"/>


package com.mrzhu.sqltite; 
 
import java.util.List; 
 
import android.test.AndroidTestCase; 
import android.util.Log; 
 
public class Test extends AndroidTestCase { 
    public void testAdd() throws Exception{ 
        SQLOperateImpl test = new SQLOperateImpl(getContext()); 
        Person person = new Person(2, "Peter"); 
        test.add(person); 
    } 
     
    public void testDelete() throws Exception{ 
        SQLOperateImpl test = new SQLOperateImpl(getContext()); 
        test.delete(1); 
    } 
     
    public void testUpdata() throws Exception{ 
        SQLOperateImpl test = new SQLOperateImpl(getContext()); 
        Person person = new Person(1, "Tom"); 
        test.updata(person); 
    }   www.2cto.com
     
    public void testFind() throws Exception{ 
        SQLOperateImpl test = new SQLOperateImpl(getContext()); 
        List<Person> persons = test.find(); 
        for (Person person : persons) { 
            Log.i("System.out", person.toString()); 
        } 
    } 
     
    public void testFindById() throws Exception{ 
        SQLOperateImpl test = new SQLOperateImpl(getContext()); 
        Person person = test.findById(2); 
        Log.i("System.out", person.toString()); 
    } 

分享到:
评论

相关推荐

    Android数据库SQLite详解

    SQLite基本概念 - **数据库**: 数据库是存储和组织数据的结构化系统,SQLite在Android中表现为一个数据库文件,扩展名为`.db`。 - **表**: 数据库中的数据按表格形式组织,每个表格包含多行多列,每行代表一个实体...

    Android数据库SQLite基本操作工程

    在这个"Android数据库SQLite基本操作工程"中,我们将深入探讨如何在Android应用中进行最基础的数据库操作:增、删、改、查。 1. **创建SQLite数据库** - 在Android中,我们通常通过继承`SQLiteOpenHelper`类来创建...

    Android源码——数据库SQLite.zip

    总的来说,"Android源码——数据库SQLite.zip"的内容涵盖了SQLite在Android中的使用、数据库的创建与管理、SQL操作、事务处理、性能优化等方面的知识,对于深入理解Android应用的数据存储机制具有很高的学习价值。

    android操作数据库Sqlite源代码

    以上是基于Android操作SQLite数据库的一些核心概念和源代码组织方式。实际开发中,还需要考虑数据同步、数据备份、数据加密等高级功能,以及性能优化,如批量插入、使用索引等。学习并理解这些知识点,将有助于你更...

    Android数据库查看工具SqliteStudio-2.1.5.rar

    **Android数据库查看工具SqliteStudio** SqliteStudio是一款强大的SQLite数据库管理工具,尤其适用于Android开发者。SQLite是Android系统默认的轻量级关系型数据库,广泛应用于应用程序的数据存储。SqliteStudio...

    Android实验报告Sqlite数据库操作.pdf

    通过本实验,用户可以掌握 Android 平台的基本操作和数据库应用。 二、实验要求 实验要求用户掌握以下几点: 1. 熟练使用 Android 的项目创建 2. 掌握 Android 的 SQLite 数据库设计 3. 掌握 Android 的 Activity...

    Android中SQLite数据库查看工具

    SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个...

    android基本SQLite数据库操作的增删改查demo

    综上所述,"android基本SQLite数据库操作的增删改查demo"涵盖了Android应用中SQLite数据库的基本操作,这对于构建需要本地数据存储功能的应用至关重要。开发者不仅需要理解SQL语句,还要熟悉Android的数据库API和UI...

    Android多线程操作sqlite(Sqlite解决database locked问题)

    本文将深入探讨如何在Android中使用多线程操作SQLite并解决数据库被锁定的问题。 首先,理解“database locked”的原因。SQLite采用独占式锁定策略,这意味着当一个事务正在进行时,其他试图访问同一数据库的事务会...

    Android 数据库操作 以及命令行上操作sqlite

    本文将深入探讨Android中的SQLite数据库操作以及如何在命令行上操作SQLite。 首先,让我们了解Android如何与SQLite交互。在Android中,我们通常通过SQLiteOpenHelper类来创建、升级和访问数据库。这个类提供了方法...

    Android 数据库编程SQLite实现学生信息管理应用

    Android 数据库编程SQLite实现学生信息管理应用https://blog.csdn.net/qq_45808700/article/details/117535524?spm=1001.2014.3001.5501

    Android数据库sqlite存储

    SQLite数据库在Android应用中扮演着至关重要的角色,它允许开发者创建、修改和管理数据库,无需用户干预,提供了高效的数据操作接口。下面将详细阐述如何在Android Studio中实现SQLite数据库的数据新建、查询、添加...

    火山安卓Android内置数据库+Sqlite.rar

    1. **SQLite简介**:可能是一份介绍SQLite数据库的基本概念、特点和优势的文档,解释为什么在Android应用中选择SQLite作为数据存储方案。 2. **Android SDK集成**:可能包含如何在火山安卓项目中添加SQLite支持的...

    Android 绿豆通讯录【SQLite数据库】

    前情提要:Android 数据库(SQLite) 【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练)】 https://blog.csdn.net/weixin_44949135/article/details/105955663  Android ...

    Android操作SQLite数据库Demo

    这个"Android操作SQLite数据库Demo"将展示如何在Android环境中有效地利用SQLite进行数据管理。以下是一些关键知识点: 1. **SQLiteOpenHelper**: Android提供了`SQLiteOpenHelper`类来帮助我们管理SQLite数据库,...

    android对sqlite数据库的操作

    本篇文章将深入探讨如何在Android中进行SQLite数据库的操作。 一、SQLite数据库简介 SQLite是一个开源的嵌入式数据库系统,它不需要单独的服务器进程,并且全部数据库都存储在一个文件中。在Android中,每个应用都...

    Android SQLite内置数据库,以及SQLite版本管理

    本资源文件`sqlitetest`着重展示了如何在Android应用中使用SQLite进行数据操作,并且包含了数据库版本管理的实现。 1. **SQLite数据库的基本概念** - 数据库:SQLite数据库是存储在设备文件系统中的一个单一文件,...

    arcgis for android 读取加载sqlite数据库.rar

    而SQLite是一种轻量级的、开源的、嵌入式的关系型数据库,广泛应用于移动应用,包括Android。本教程将探讨如何在ArcGIS for Android环境中利用SQLite数据库进行数据存储和读取。 1. **SQLite数据库介绍**: SQLite...

    Android SQLite数据库操作Demo

    这个"Android SQLite数据库操作Demo"项目将帮助你理解如何在实际应用中与SQLite数据库进行交互,包括基本的CRUD操作以及事务处理,这些都是Android开发中不可或缺的部分。通过实践这个Demo,你可以深入理解SQLite...

Global site tag (gtag.js) - Google Analytics