`
XiangdongLee
  • 浏览: 91321 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

【攻克Android (19)】SQLite数据库

 
阅读更多
本文围绕以下两个部分展开:

一、SQLite数据库
二、案例:SQLite数据库实现增删改查
        附   代码补充





一、SQLite数据库


二、案例:SQLite数据库实现增删改查



        1. strings.xml。定义所需字符串。

<resources>
  <string name="app_name">DB</string>

  <string name="action_insert">C</string>
  <string name="action_read">R</string>
  <string name="action_update">U</string>
  <string name="action_delete">D</string>

  <string name="hint_id">编号</string>
  <string name="hint_name">部门名</string>
  <string name="hint_loc">地点</string>

</resources>


        2. activity_main.xml。写主界面。



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/txtId"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/hint_id"
        android:inputType="number" />

    <EditText
        android:id="@+id/txtName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txtId"
        android:hint="@string/hint_name" />

    <EditText
        android:id="@+id/txtLoc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txtName"
        android:hint="@string/hint_loc" />

    <TextView
        android:id="@+id/tvResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txtLoc" />

</RelativeLayout>


        3. menu_main.xml。写菜单。



<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">
    <item
        android:id="@+id/action_insert"
        android:orderInCategory="100"
        android:showAsAction="always"
        android:title="@string/action_insert" />

    <item
        android:id="@+id/action_read"
        android:orderInCategory="101"
        android:showAsAction="always"
        android:title="@string/action_read" />

    <item
        android:id="@+id/action_update"
        android:orderInCategory="102"
        android:showAsAction="always"
        android:title="@string/action_update" />

    <item
        android:id="@+id/action_delete"
        android:orderInCategory="103"
        android:showAsAction="always"
        android:title="@string/action_delete" />
</menu>


        4. MainActivity。声明控件、初始化控件。

private EditText txtId;
    private EditText txtName;
    private EditText txtLoc;
    private TextView tvResult;


        txtId = (EditText) findViewById(R.id.txtId);
        txtName = (EditText) findViewById(R.id.txtName);
        txtLoc = (EditText) findViewById(R.id.txtLoc);
        tvResult = (TextView) findViewById(R.id.tvResult);


        5. MainActivity。写菜单被选中后的事件。

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_insert:
                // 新增

                break;
            case R.id.action_read:
                // 查询

                break;
            case R.id.action_update:
                // 更新

                break;
            case R.id.action_delete:
                // 删除

                break;
        }

        return super.onOptionsItemSelected(item);
    }


        6. 在 java 下面的包名下,创建 数据库帮助类:DBOpenHelper,继承于 SQLiteOpenHelper。(继承之后,需要重写父类的两个方法:onCreate()和onUpgrade(),并写出构造方法。)

    /**
     * 在数据库第一次建立时被调用, 一般用来创建数据库中的表,
     * 并做适当的初始化工作
     */
    @Override
    public void onCreate(SQLiteDatabase db) {

    }


    /**
     * 在数据库需要升级时被调用, 一般用来删除旧的数据库表,
     * 并将数据转移到新版本的数据库表中
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }


        创建的构造方法如下:

    public DBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        // 参数1:context 上下文
        // 参数2:name 数据库名 (对于一个项目,数据库名是固定的。)
        // 参数3:CursorFactory 指定在执行查询时获得一个游标实例的工厂类,
        //       设置为null,代表使用系统默认的工厂类
        // 参数4:version 数据库版本 (必须>=1,否则抛异常)
        //      (数据库版本,也是固定的。只有升级软件的时候,才改。)
        super(context, name, factory, version);
    }


        由于数据库名和数据库版本是固定的,游标实例工厂类可以使用默认的,因此,构造方法原来需要传4个参数,现在只需要传1个参数:“上下文”,即可。写成如下的样子:

    private final static String DB_NAME = "google.db";
    private final static int VERSION = 2;

    public DBOpenHelper(Context context) {
        super(context, DB_NAME, null, VERSION);
    }


        7. DBOpenHelper。写 onCreate()方法 和 onUpgrade()方法。

    /**
     * 在数据库第一次建立时被调用, 一般用来创建数据库中的表,
     * 并做适当的初始化工作
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        // sql语句
        String sql = "create table dept " +
                "(id integer primary key autoincrement," +
                "name text not null,loc text not null)";
        // 执行 sql语句
        db.execSQL(sql);
    }


    /**
     * 在数据库需要升级时被调用, 一般用来删除旧的数据库表,
     * 并将数据转移到新版本的数据库表中
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //String sql = "drop table if exists dept";  // 把原来的表直接删掉
        //db.execSQL(sql);  // 执行 sql语句
        //onCreate(db);  // 创建新表

        // 升级软件的步骤:
        // 1.修改数据版本 +1
        // 2.修改表结构,尽量不删除原有数据,再重建表
        String sql = "alter table dept ";
        sql += " add column sal integer default 0";
        // 执行 sql语句
        db.execSQL(sql);
    }


        8. 在 java 下面的包名下,创建 一个类:DeptService,用来操作 Dept 表:增删改查。先写一个构造方法:

    // 在构造函数中,传一个“上下文”的参数,通过数据库帮助类 创建数据库
    public DeptService(Context context) {
        dbOpenHelper = new DBOpenHelper(context);
    }


        (1)增(插入数据):先在 DeptService 类中封装“增”的操作方法,然后去 MainActivity 中使用该方法进行“增”。

    /**
     * 插入
     * @param values
     */
    // ContentValues 相当于 Map 集合,用来存储 键值对数据
    public void insert(ContentValues values) {
        // 通过数据库帮助类获得 数据库对象(可以写的操作)
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
        // 参数1:操作的表名
        // 参数3为null /长度为0
        // 参数2:为了满足SQL语句insert into dept () values()要求设置值
        // db.insert("dept", "name", null);
        // sql:insert into dept (name) values(null)

        // insert into dept(null) values(null);
        // insert into dept(name,loc) values('sales','LA')
        db.insert("dept", null, values);
    }


            case R.id.action_insert:
                // 新增
                values.put("name", txtName.getText().toString());
                values.put("loc", txtLoc.getText().toString());
                service.insert(values);
                break;


        (2)更新:先在 DeptService 类中封装“更新”的操作方法,然后去 MainActivity 中使用该方法进行“更新”。

    /**
     * 更新
     * @param values
     */
    public void update(ContentValues values) {
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
        db.update("dept", values, "id=?",
                new String[]{String.valueOf(values.getAsInteger("id"))});
    }


            case R.id.action_update:
                // 更新
                values.put("id", txtId.getText().toString());
                values.put("name", txtName.getText().toString());
                values.put("loc", txtLoc.getText().toString());
                service.update(values);
                break;


        (3)删除:先在 DeptService 类中封装“删除”的操作方法,然后去 MainActivity 中使用该方法进行“删除”。

    /**
     * 删除
     * @param id
     */
    public void delete(Integer id) {
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
        db.delete("dept", "id=?", new String[]{String.valueOf(id)});
    }


            case R.id.action_delete:
                // 删除
                service.delete(Integer.parseInt(txtId.getText().toString()));
                break;


        (4)查询所有记录:先在 DeptService 类中封装“查询所有记录”的操作方法,然后去 MainActivity 中使用该方法进行“查询所有记录”。(因为,查询要用到 实体类 Dept,因此要先创建 实体类 Dept 来封装 Dept表,见第9步)

    /**
     * 查询所有记录
     * @return
     */
    public List<Dept> find() {
        List<Dept> list = new ArrayList<>();
        // 通过数据库帮助类获得 数据库对象(可以读的操作)
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
        Cursor cursor = db.query("dept", null, null, null, null, null, "id desc");
        // query(表名,所有字段,where子句,where子句对应的值,groupBy子句,having子句,排序)

        while (cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndex("id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String loc = cursor.getString(cursor.getColumnIndex("loc"));
            list.add(new Dept(id, name, loc));
        }
        cursor.close();
        return list;
    }


            case R.id.action_read:
                // 查询
                String text = "";
                for (Dept dept : service.find()) {
                    text += dept + "\n";
                }
                tvResult.setText(text);
                break;


        (5)DeptService。其他查询方法。

    /**
     * 通过 id 查询
     * @param id
     * @return
     */
    public Dept find(Integer id) {
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
        Cursor cursor = db.query("dept", new String[]{"id", "name", "loc"},
                "id=?", new String[]{String.valueOf(id)}, null, null, null);
        if (cursor.moveToFirst()) {
            // int id=cursor.getInt(cursor.getColumnIndex("id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String loc = cursor.getString(cursor.getColumnIndex("loc"));
            return new Dept(id, name, loc);
        }
        return null;
    }


    /**
     * 分页查询(用得非常少)
     *
     * @param offset    忽略前面指定的记录数
     * @param maxResult 一页显示记录数
     * @return
     */
    public List<Dept> find(int offset, int maxResult) {
        List<Dept> list = new ArrayList<Dept>();
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
        Cursor cursor = db.query("dept", null, null, null, null, null, null, offset
                + "," + maxResult); // limit 0,3 / 3,3
        // query(表名,所有字段,where子句,where子句对应的值,groupBy子句,having子句,排序,分页)

        while (cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndex("id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String loc = cursor.getString(cursor.getColumnIndex("loc"));
            list.add(new Dept(id, name, loc));
        }
        cursor.close();
        return list;
    }


    /**
     * 统计
     * select count(*) from emp
     * @return
     */
    public long getCount() {
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
        Cursor cursor = db.query("dept", new String[]{"count(*)"}, null, null,
                null, null, null);
        cursor.moveToFirst();
        return cursor.getLong(0);
    }


    /**
     * 转账(SQLite事务)
     */
    public void trans(ContentValues fromValues, ContentValues toValues) {
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();

        db.beginTransaction(); // 开启事务
        try {
            db.update("dept", fromValues, "id=?",
                    new String[]{String.valueOf(fromValues.getAsInteger("id"))});
            db.update("dept", toValues, "id=?",
                    new String[]{String.valueOf(toValues.getAsInteger("id"))});

            // 设置事务标志为成功,当结束事务时就会提交事务
            db.setTransactionSuccessful();
        } finally {
            db.endTransaction(); // 结束事务
        }
    }


        9. 在 java 下面的包名下,创建 一个实体类:Dept,用来封装 Dept 表。

package com.android.db;

public class Dept {
    private int id;
    private String name;
    private String loc;

    public Dept() {
    }

    public Dept(int id, String name, String loc) {
        this.id = id;
        this.name = name;
        this.loc = loc;
    }

    @Override
    public String toString() {
        return "Dept{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", loc='" + loc + '\'' +
                '}';
    }

    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 getLoc() {
        return loc;
    }

    public void setLoc(String loc) {
        this.loc = loc;
    }
}



        附   代码补充



        1. DBOpenHelper

package com.android.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * 数据库帮助类
 */
public class DBOpenHelper extends SQLiteOpenHelper {
    private final static String DB_NAME = "google.db";
    private final static int VERSION = 2;

    public DBOpenHelper(Context context) {
        super(context, DB_NAME, null, VERSION);
    }

    /**
     * 在数据库第一次建立时被调用, 一般用来创建数据库中的表,
     * 并做适当的初始化工作
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        // sql语句
        String sql = "create table dept " +
                "(id integer primary key autoincrement," +
                "name text not null,loc text not null)";
        // 执行 sql语句
        db.execSQL(sql);
    }

    /**
     * 在数据库需要升级时被调用, 一般用来删除旧的数据库表,
     * 并将数据转移到新版本的数据库表中
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //String sql = "drop table if exists dept";  // 把原来的表直接删掉
        //db.execSQL(sql);  // 执行 sql语句
        //onCreate(db);  // 创建新表

        // 升级软件的步骤:
        // 1.修改数据版本 +1
        // 2.修改表结构,尽量不删除原有数据,再重建表
        String sql = "alter table dept ";
        sql += " add column sal integer default 0";
        // 执行 sql语句
        db.execSQL(sql);
    }
}


        2. DeptService

package com.android.db;

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

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


public class DeptService {
    private DBOpenHelper dbOpenHelper;

    // 在构造函数中,传一个“上下文”的参数,通过数据库帮助类 创建数据库
    public DeptService(Context context) {
        dbOpenHelper = new DBOpenHelper(context);
    }

    /**
     * 插入
     * @param values
     */
    // ContentValues 相当于 Map 集合,用来存储 键值对数据
    public void insert(ContentValues values) {
        // 通过数据库帮助类获得 数据库对象(可以写的操作)
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
        // 参数1:操作的表名
        // 参数3为null /长度为0
        // 参数2:为了满足SQL语句insert into dept () values()要求设置值
        // db.insert("dept", "name", null);
        // sql:insert into dept (name) values(null)

        // insert into dept(null) values(null);
        // insert into dept(name,loc) values('sales','LA')
        db.insert("dept", null, values);
    }

    /**
     * 更新
     * @param values
     */
    public void update(ContentValues values) {
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
        db.update("dept", values, "id=?",
                new String[]{String.valueOf(values.getAsInteger("id"))});
    }

    /**
     * 删除
     * @param id
     */
    public void delete(Integer id) {
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
        db.delete("dept", "id=?", new String[]{String.valueOf(id)});
    }

    /**
     * 查询所有记录
     * @return
     */
    public List<Dept> find() {
        List<Dept> list = new ArrayList<>();
        // 通过数据库帮助类获得 数据库对象(可以读的操作)
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
        Cursor cursor = db.query("dept", null, null, null, null, null, "id desc");
        // query(表名,所有字段,where子句,where子句对应的值,groupBy子句,having子句,排序)

        while (cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndex("id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String loc = cursor.getString(cursor.getColumnIndex("loc"));
            list.add(new Dept(id, name, loc));
        }
        cursor.close();
        return list;
    }

    /**
     * 通过 id 查询
     * @param id
     * @return
     */
    public Dept find(Integer id) {
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
        Cursor cursor = db.query("dept", new String[]{"id", "name", "loc"},
                "id=?", new String[]{String.valueOf(id)}, null, null, null);
        if (cursor.moveToFirst()) {
            // int id=cursor.getInt(cursor.getColumnIndex("id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String loc = cursor.getString(cursor.getColumnIndex("loc"));
            return new Dept(id, name, loc);
        }
        return null;
    }

    /**
     * 分页查询
     *
     * @param offset    忽略前面指定的记录数
     * @param maxResult 一页显示记录数
     * @return
     */
    public List<Dept> find(int offset, int maxResult) {
        List<Dept> list = new ArrayList<Dept>();
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
        Cursor cursor = db.query("dept", null, null, null, null, null, null, offset
                + "," + maxResult); // limit 0,3 / 3,3
        // query(表名,所有字段,where子句,where子句对应的值,groupBy子句,having子句,排序,分页)

        while (cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndex("id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String loc = cursor.getString(cursor.getColumnIndex("loc"));
            list.add(new Dept(id, name, loc));
        }
        cursor.close();
        return list;
    }

    /**
     * 统计
     * select count(*) from emp
     * @return
     */
    public long getCount() {
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
        Cursor cursor = db.query("dept", new String[]{"count(*)"}, null, null,
                null, null, null);
        cursor.moveToFirst();
        return cursor.getLong(0);
    }

    /**
     * 转账(SQLite事务)
     */
    public void trans(ContentValues fromValues, ContentValues toValues) {
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();

        db.beginTransaction(); // 开启事务
        try {
            db.update("dept", fromValues, "id=?",
                    new String[]{String.valueOf(fromValues.getAsInteger("id"))});
            db.update("dept", toValues, "id=?",
                    new String[]{String.valueOf(toValues.getAsInteger("id"))});

            // 设置事务标志为成功,当结束事务时就会提交事务
            db.setTransactionSuccessful();
        } finally {
            db.endTransaction(); // 结束事务
        }
    }
}


        3. MainActivity

package com.android.db;

import android.app.Activity;
import android.content.ContentValues;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.TextView;


public class MainActivity extends Activity {
    private EditText txtId;
    private EditText txtName;
    private EditText txtLoc;
    private TextView tvResult;

    private DeptService service;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        txtId = (EditText) findViewById(R.id.txtId);
        txtName = (EditText) findViewById(R.id.txtName);
        txtLoc = (EditText) findViewById(R.id.txtLoc);
        tvResult = (TextView) findViewById(R.id.tvResult);

        service = new DeptService(this);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        ContentValues values = new ContentValues();
        switch (item.getItemId()) {
            case R.id.action_insert:
                // 新增
                values.put("name", txtName.getText().toString());
                values.put("loc", txtLoc.getText().toString());
                service.insert(values);
                break;
            case R.id.action_read:
                // 查询
                String text = "";
                for (Dept dept : service.find()) {
                    text += dept + "\n";
                }
                tvResult.setText(text);
                break;
            case R.id.action_update:
                // 更新
                values.put("id", txtId.getText().toString());
                values.put("name", txtName.getText().toString());
                values.put("loc", txtLoc.getText().toString());
                service.update(values);
                break;
            case R.id.action_delete:
                // 删除
                service.delete(Integer.parseInt(txtId.getText().toString()));
                break;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
}


  • 大小: 11 KB
  • 大小: 26.1 KB
  • 大小: 23.3 KB
  • 大小: 10.8 KB
分享到:
评论

相关推荐

    Android中SQLite数据库查看工具

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

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

    Android SQLite 数据库操作报告 一、实验目的 Android 实验报告的主要目的是熟悉 Android 平台的文件操作、掌握 Android SQLite 数据库的设计和应用、熟悉 XML 和 JSON 文件的读取。通过本实验,用户可以掌握 ...

    android 的sqlite数据库加密实现

    在Android应用开发中,SQLite是一个常用的轻量级数据库,它为数据存储提供了便利。然而,随着数据安全性的日益重要,对SQLite数据库进行加密是必要的,以保护敏感信息免受未授权访问。本篇文章将深入探讨如何在...

    Android Studio SQLite数据库使用

    Android Studio SQLite数据库使用 Android Studio 提供了SQLite数据库来存储应用程序的数据。在本文中,我们将介绍如何使用SQLite数据库在Android Studio中,并详细解释SQLiteOpenHelper和SQLiteDatabase的使用方法...

    android对sqlite数据库的操作

    在Android开发中,SQLite数据库是默认的轻量级数据库,用于存储应用的数据。SQLite支持标准的关系型数据库特性,如SQL语法、事务处理等,且它体积小、无服务器、文件化,非常适合移动设备使用。本篇文章将深入探讨...

    android中sqlite数据库的创建以及增删改查

    资源名称:android中sqlite数据库的创建以及增删改查 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    Android数据库SQLite详解

    在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储和管理应用程序中的数据。SQLite具有高效、可靠且易于集成的特点,使得它成为Android应用数据...

    android读取sqlite数据库的数据并用listview显示

    在Android开发中,SQLite是一个内置的轻量级数据库系统,用于存储应用程序的结构化数据。本教程将详述如何在Android应用中读取SQLite数据库的数据并利用ListView进行展示。 首先,我们需要创建SQLite数据库。在...

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

    在Android应用开发中,SQLite是一个轻量级的数据库系统,常用于存储应用程序中的结构化数据。SQLite数据库的优势在于它不需要单独的服务进程,可以直接嵌入到应用程序中,支持基本的SQL语法,非常适合移动设备上的...

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

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

    android 操作sqlite数据库源码

    在Android开发中,SQLite是一个重要的组成部分,它是一个轻量级的数据库系统,允许开发者在应用程序中存储、管理和处理数据。SQLite被广泛应用于Android应用,因为它具有高效、可靠且易于使用的特性。下面我们将深入...

    实验项目报告第7章.doc android studio SQLite数据库的创建、增删改查操作 SharedPreferen

    【Android Studio 中 SQLite 数据库操作】 在 Android 开发中,SQLite 是一个常用的数据存储解决方案,尤其适合小型到中型的数据存储需求。SQLite 是一个轻量级的、嵌入式的关系型数据库,支持标准的 SQL 语法,...

    Android操作SQLite数据库Demo

    在Android应用开发中,SQLite是一个轻量级的关系型数据库,常用于存储应用中的结构化数据。这个"Android操作SQLite数据库Demo"将展示如何在Android环境中有效地利用SQLite进行数据管理。以下是一些关键知识点: 1. ...

    Android源码——数据库SQLite.zip

    这个压缩包文件"Android源码——数据库SQLite.zip"可能包含了关于Android中SQLite数据库的源码分析、使用示例以及相关的图像资源,如1-120912223R80-L.png,可能用于解释或展示SQLite在Android中的工作原理。...

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

    在本示例"android基本SQLite数据库操作的增删改查demo"中,开发者创建了一个用于管理停车位查询的应用,其中涉及到了对SQLite数据库的基础操作:增加数据(Add)、查询数据(Query)、删除数据(Delete)以及修改...

    安卓SQLite数据库相关-安卓Androidsqlite万能数据库.rar

    标题"安卓SQLite数据库相关-安卓Androidsqlite万能数据库.rar"暗示了这个压缩包包含了一系列与Android平台上SQLite数据库使用相关的资源,可能是源代码、教程、示例或者其他工具。由于描述中提到“太多无法一一验证...

    android SQLite数据库管理软件

    SQLite是一款轻量级的数据库管理系统,它被广泛应用于Android应用程序中,因为它不需要独立的服务进程,而是内嵌在应用中,提供了高效、可靠的本地数据存储功能。"android SQLite数据库管理软件"是一个专为Android...

    android sqlite数据库 demo code

    在Android开发中,SQLite是一个非常重要的组件,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储应用中的结构化数据。SQLite数据库的优势在于它不需要独立的服务器进程,而是直接集成在应用程序中...

    论文研究-Android下SQLite数据库安全机制的设计与实现 .pdf

    Android下SQLite数据库安全机制的设计与实现,刘树杰,,Android 作为强大的智能终端操作系统,深受用户的喜爱,基于该平台的应用日益增多。Android平台下提供了SQLite 数据库作为数据存储的主��

    Android SQLite数据库操作Demo

    在Android应用开发中,SQLite是一个轻量级的关系型数据库,常用于存储应用程序中的结构化数据。SQLite数据库的优势在于它不需要单独的服务进程,而是直接嵌入到应用程序中,提供了高效的本地数据存储解决方案。在这...

Global site tag (gtag.js) - Google Analytics