Android数据库配置:简单易懂的教程 (android数据库配置)

随着移动互联网应用的不断发展,Android平台已成为目前更流行的移动设备操作系统之一。而App中使用的数据库也成为了App重要的功能之一,毕竟数据是在整个应用中不可替代的资源。因此,了解Android数据库配置的相关知识是开发安卓App的必要技能。

本篇文章将为大家讲解Android中如何配置数据库,以及使用SQLiteOpenHelper管理数据库的方法,帮助读者更好地了解Android数据库配置。

一、SQLite简介

SQLite是一种轻量级的关系型数据库,广泛使用于移动设备和嵌入式设备中。它与其他数据库管理系统相比较,有以下优点:

1. 跨平台性

SQLite能在不同操作系统上工作,包括Android、IOS、Windows等操作系统。

2. 设计简单

SQLite数据库文件可以直接存储在文件系统中,不需要专门的数据库服务器。

3. 体积小巧

SQLite数据库引擎源代码只有几百KB,可以快速的安装及启动,且占用很少的系统资源。

4. 完整性

SQLite支持完整的SQL语法。提供了多种数据类型,包括整数类型、浮点数类型、字符串类型、日期类型、二进制类型等。

二、操作SQLite数据库流程

1. 创建SQLiteOpenHelper的子类用于管理数据库,重写onCreate()方法和onUpgrade()方法。

2. 在onCreate()方法中创建数据库对象(SQLiteDatabase)。

3. 创建表(SQLite Table)并插入数据。

4. 在onUpgrade()方法中升级表结构,如果需要的话。

5. 调用SQLiteOpenHelper的getWritableDatabase()方法获得可写数据库对象。

6. 执行增删改查操作。

7. 关闭数据库。

三、在Android中使用SQLiteOpenHelper

SQLiteOpenHelper是Android中的一个系统辅助类,实现了SQLite数据库的创建和升级管理。当需要使用数据库时,应继承此类并实现相应的方法。下面我们将详细介绍如何使用SQLiteOpenHelper在Android应用中进行数据库操作。

1. 创建一个SQLiteOpenHelper子类

为了在应用程序中使用SQLite database,我们需要扩展 SQLiteOpenHelper 类。具体实现方式如下:

“`

public class MySQLiteHelper extends SQLiteOpenHelper {

// 定义数据库名

private static final String DATABASE_NAME = “myDB.db”;

// 定义表名

private static final String TABLE_NAME = “myTable”;

// 定义表结构

private static final String COLUMN_ID = “id”;

private static final String COLUMN_NAME = “name”;

// 定义数据库版本号

private static final int DATABASE_VERSION = 1;

// 构造函数

public MySQLiteHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

// 创建数据库表

@Override

public void onCreate(SQLiteDatabase sqLiteDatabase) {

String createTable = “CREATE TABLE ” + TABLE_NAME + ” (“

+ COLUMN_ID + ” INTEGER PRIMARY KEY,”

+ COLUMN_NAME + ” TEXT)”;

sqLiteDatabase.execSQL(createTable);

}

// 升级数据库表

@Override

public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

// 需要升级表结构时,可以在这里进行相应的操作

}

// 创建新的列(新增字段)时调用

@Override

public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {

db.execSQL(“DROP TABLE IF EXISTS ” + TABLE_NAME);

onCreate(db);

}

}

“`

2. 创建一个SQLite对象

在该子类的构造函数中创建一个新的SQLiteOpenHelper客户端对象。你需要向构造函数中传递context、数据库名称和版本号三个参数。

“`

MySQLiteHelper dbHelper = new MySQLiteHelper(this);

“`

3. 写入数据

要完成向数据库中写入数据的操作,需要获得一个可写的数据库对象。

“`

SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(COLUMN_NAME, “name”);

long newRowId = db.insert(TABLE_NAME, null, values);

db.close();

“`

在此示例中,我们创建一个ContentValues对象,将数据存储到了数据库表中。在调用db.insert方法时,需要传递3个参数:表名、字符串列名的值以及ContentValue对象。记录将被添加到名为 “myTable” 的表中。一个可选参数“nullColumnHack”,在传递null作为参数时,会在行中插入空值,开发人员也可以使用所需的值进行代替。

备注:ContentValues类用于在SQLite数据库中插入数据。该类是一个键 /值存储容器,用于存储数据的并准备好插入数据库。该类提供便利,开发者可以使用put()方法调用添加值。

4. 从数据库查询读取数据

为了查询数据,需要获得可读的数据库对象。然后,该对象可以通过在查询中使用SELECT语句检索数据。

“`

SQLiteDatabase db = dbHelper.getReadableDatabase();

String[] projection = {

COLUMN_ID,

COLUMN_NAME

};

Cursor cursor = db.query(

TABLE_NAME,

projection,

null,

null,

null,

null,

null

);

while(cursor.moveToNext()) {

long itemId = cursor.getLong(cursor.getColumnIndexOrThrow(COLUMN_ID));

String itemName = cursor.getString(cursor.getColumnIndexOrThrow(COLUMN_NAME));

}

cursor.close();

“`

在此示例中,我们创建一个String数组projection,其中包含要查询的列名。然后,使用db.query方法作为查询的入口。接下来的参数系列跟着 SQL“SELECT”语句中执行的操作。使用while循环打印结果集。

5. 删除数据库表中的数据

要删除数据库表中的数据,就需要获得一个可写的数据库对象。

“`

SQLiteDatabase db = dbHelper.getWritableDatabase();

String selection = COLUMN_NAME + ” = ?”;

String[] selectionArgs = { “name” };

int deletedRows = db.delete(TABLE_NAME, selection, selectionArgs);

“`

在此示例中,我们创建了两个字符串对象,以删除所有名称为’name’的数据。注意,delete()方法返回已删除行的数量。

6. 更新存储在数据库表中的数据

要更新数据库表中的数据,需要使用可写的数据库对象。

“`

SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(COLUMN_NAME, “newName”);

String selection = COLUMN_NAME + ” = ?”;

String[] selectionArgs = { “name” };

int count = db.update(

TABLE_NAME,

values,

selection,

selectionArgs);

“`

在此示例中,我们创建了一个ContentValues对象,并将我们想要更新的数据存储到其中。然后,使用db.update()方法进行更新。注意,update()方法返回一个整数值,该值表示已更改的数据行数。

7. 关闭连接

当数据库不再被使用时,应该及时关闭连接。

“`

db.close();

“`

在本文中,我们介绍了SQLite数据库的优点,以及在Android中使用SQLiteOpenHelper进行数据库操作的方便性。通过实现SQLiteOpenHelper的子类,我们可以轻松地创建、写入、读取,更新和删除数据。尤其在Android应用程序中,SQLiteOpenHelper更是一个强大的工具类。

在实现具体数据库业务的过程中,开发人员需要根据具体业务逻辑调整SQL语句和操作方式。相信随着对SQLiteOpenHelper操作的逐渐熟悉,开发人员可以轻松虚心处理这些问题。

相关问题拓展阅读:

怎么连接android和php mysql数据库

请注意:这里提供的代码只是为了使你能简单的连接Android项目和PHP,MySQL。你不能把它作为一个标准或者安全编程实践。在生产环境中,理想情况下你需要避免使用任何可能造成潜在注入漏洞的代码(比如MYSQL注入)。MYSQL注入是一个很大的话题,不可能用单独的一篇文章来说清楚,并且它也不在本文讨论的范围内,所以本文不以讨论。

  1. 什么是WAMP Server

  WAMP是Windows,Apache,MySQL和PHP,Perl,Python的简称。WAMP是一个一键安装的软件,它为开发PHP,MySQL Web应用程序提供一个环境。安装这款软件你相当于安装了Apache,MySQL和PHP。或者,你也可以使用XAMP。

  2. 安装和使用WAMP Server

  你可以从http://www。wampserver。com/en/下载WAMP,安装完成之后,可以从开始->所有程序->WampServer->StartWampServer运行该程序。

  在浏览器中输入

来测试你的服务器是否安装成功。同样的缓悄,也可以打开

phpmyadmin来检验phpmyadmin是否安装成功。

  3. 创建和运行PHP项目

  现在,你已经有一个能开发PHP和MYSQL项目的环境了。打开安装WAMP Server的文件夹(在我的电脑中,是C:\wamp\),打开www文件夹,为你的项目创建一个新的文件夹。你必须把项目中所有的文件放到这个文件夹中。

  新建一个名为android_connect的文件夹,并新建一个php文件,命名为test.php,尝试输入一些简单的php代码(如下所示)。输入下面的代码后,打开

android_connect/test.php,你会在浏览器中看到“Welcome,I am connecting Android to PHP,MySQL”(如果没有正确输入,请检查WAMP配置是否正确)

  test.php

  4. 创建扰乱渣MySQL数据库和表

  在本教程中,我创建了一个简单的只有一张表的数据库。我会用这个表来执行一些示例操作。现在,陪咐请在浏览器中输入

phpmyadmin/,并打开phpmyadmin。你可以用PhpMyAdmin工具创建数据库和表。

  创建数据库和表:数据库名:androidhive,表:product

  CREATE DATABASE androidhive;

  CREATE TABLE products(

  pid int(11) primary key auto_increment,

  name varchar(100) not null,

  price decimal(10,2) not null,

  description text,

  created_at timestamp defaultnow(),

  updated_at timestamp

  );5. 用PHP连接MySQL数据库

  现在,真正的服务器端编程开始了。新建一个PHP类来连接MYSQL数据库。这个类的主要功能是打开数据库连接和在不需要时关闭数据库连接。

  新建两个文件db_config.php,db_connect.php

  db_config.php存储数据库连接变量

  db_connect.php连接数据库的类文件

  db_config.php

  connect();

  }

  // destructor

  function__destruct() {

  // closing db connection

  $this->close();

  }

  /**

  * Function to connect with database

  */

  functionconnect() {

  // import database connection variables

  require_once__DIR__ . ‘/db_config.php’;

  // Connecting to mysql database

  $con= mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) ordie(mysql_error());

  // Selecing database

  $db= mysql_select_db(DB_DATABASE) ordie(mysql_error()) ordie(mysql_error());

  // returing connection cursor

  return$con;

  }

  /**

  * Function to close db connection

  */

  functionclose() {

  // closing db connection

  mysql_close();

  }

  }

  ?>怎么调用:当你想连接MySQl数据库或者执行某些操作时,可以这样使用db_connect.php

  $db= newDB_CONNECT(); // creating class object(will open database connection)

  我们先来看一个简单的Android app例子(这里是一个商品存货清单项目),在Android程序中,我们可以访问(call)PHP脚本来执行简单的CRUD操作(创建,读取,更新,删除)。为了使你对它的体系结构有一个大概的了解,这里先说一下它是怎么工作的。首先你的Android项目访问(call)PHP脚本来执行一条数据操作,我们称它为“创建”。然后PHP脚本连接MySQL数念乱察据库来执行这个操作。这样,数据从Android程序流向PHP脚本,最终存储在MySQL数据库中。

  好了,让我们来深入的看一下。

  请注意:这里提供的代码只是为了使你能简单的连接Android项目和PHP,MySQL。你不能把它作为一个标准或者安全编程实践。在生产环境中,理想情况下你需要避免使用任何可能造成潜在注入漏洞的代码(比如MYSQL注入)。MYSQL注入是一个很大的话题,不可能用单独的一篇文章来说清楚,并且它也不在本文讨论的范围内,所以本文不以讨论。

  1. 什么是WAMP Server

  WAMP是Windows,Apache,MySQL和PHP,Perl,Python的简称。WAMP是一个一键安装的软件,它为开发PHP,MySQL Web应用程序提供一个环境。安装这款软件你相当于安装了Apache,MySQL和PHP。或者,你也可以使用 XAMP 。

  2. 安装和使用WAMP Server

  在浏览器中输入

来测试你的服务器是否安装成功。同样的,也可以打开

phpmyadmin 来检验phpmyadmin是否安装成功。

  3. 创建和运行PHP项目

  现在,你已经有一个能开发PHP和MYSQL项目的环境了。打开安装WAMP Server的文件夹(在我的电脑中,是C:\wamp\),打开www文件夹,为你的项目创建一个新的文件夹。你必须把项目中所有的文件放到这个文件夹中。

  新建一个名为android_connect的文件夹,并新建一个php文件,命名为test.php,尝试输入一些简单的php代码(如下所示)。输入下面的代码后,打开

android_connect/test.php ,你会在浏览器中看到“Welcome,I am connecting Android to PHP,MySQL”(如果没有正确输入,请检查WAMP配置是否正确)

  test.php

  

  4. 创建MySQL数据库和表

  在本教程中,我创建了一个简单的只有一张表的数据库。我会用这个表来执行一些示例操作。现在,请在浏览器中输入

phpmyadmin/ ,并打开 phpmyadmin。 你可以用PhpMyAdmin工具创建数据库和表。

  创建数据库和表:数据库名:androidhive,表:product

  CREATE DATABASE androidhive;

  CREATE TABLE products(

  pid int(11) primary key auto_increment,

  name varchar(100) not null,

  price decimal(10,2) not null,

  description text,

  created_at timestamp defaultnow(),

  updated_at timestamp

  );

  5. 用PHP连接MySQL数据库

  现在,真正的服务器端编程开始了。新建一个PHP类来连接MYSQL数据库。这个类的主要功能是打开数据库连接和在不需要时关闭数据库连接。

  新建两个文件 db_config.php,db_connect.php

  db_config.php存储数陪禅据库连接变量

  db_connect.php连接数据库的类文件

  db_config.php

  connect();

  }

  // destructor

  function__destruct() {

  // closing db connection

  $this->close();

  }

  /**

  * Function to connect with database

  */

  functionconnect() {

  // import database connection variables

  require_once__DIR__ . ‘/db_config.php’;

  // Connecting to mysql database

  $con= mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) ordie(mysql_error());

  // Selecing database

  $db= mysql_select_db(DB_DATABASE) ordie(mysql_error()) ordie(mysql_error());

  // returing connection cursor

  return$con;

  }

  /**

  * Function to close db connection

  */

  functionclose() {

  // closing db connection

  mysql_close();

  }

  }

  ?>

  怎么调用 :当你想连接MySQl数据库或者执行某些操作时,可以这样使用db_connect.php

  $db= newDB_CONNECT(); // creating class object(will open database connection)

  6. 使用PHP执行基本CRUD操作

  在这部分,我将讲述使用PHP对MySQL数据库执行基本CRUD(创建,读取,更新,删除)操作。

  如果你是PHP和MySQL新手,我建议你可以先学习 PHP 和 SQL 基础知识。

  6. a)在MYSQL中新建一行(创建一行新的产品)

  在你的PHP项目中新建一个php文件,命名为create_product.php,并输入以下代码。该文件主要实现在products表中插入一个新的产品。

  在下面的代码我使用POST来读取产品数据并把他们存储在products表中。

  最后我会输出一些ON返回值,以便返回给客户端(Android项目)

Android通过PHP连接MySQL:

insert.php

//AndroidTestActivity.java

package com.knight.android.test;//根据实际的工程需要,修改包友枯的名称

import java.io.InputStream;

import java.util.ArrayList;

import org.apache.http.HttpResponse;

import org.apache.http.client.HttpClient;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.message.BasicNameValuePair;

import org.json.ONArray;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

public class AndroidTestActivity extends Activity {

ONArray jArray;

String result = null;

InputStream is = null;

StringBuilder =null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Button b1 = (Button) findViewById(R.id.button1);

b1.setOnClickListener(new Button.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

EditText tv = (EditText) findViewById(R.id.editView);

ArrayList nameValuePairs = new ArrayList();

nameValuePairs.add(new BasicNameValuePair(“id”,”3″));

nameValuePairs.add(new BasicNameValuePair(“name”,”Guo”));

//http post

try{

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(“

“);

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response = httpclient.execute(httppost);

tv.setText(“insert successfully”);

}catch(Exception e){

Log.e(“log_tag”, “Error in http connection”+e.toString());

}

}

});

}

}

android数据库配置的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于android数据库配置,Android数据库配置:简单易懂的教程,怎么连接android和php mysql数据库的信息别忘了在本站进行查找喔。


数据运维技术 » Android数据库配置:简单易懂的教程 (android数据库配置)