安卓编程实战:实现本地数据库与界面的链接 (安卓编程怎么链接界面到本地数据库)

在移动应用开发中,与本地数据库实现链接是非常重要的一项技术。本地数据库可以保存应用程序中各种数据,通过与数据表格配合,可以实现数据的增删改查等操作。实现本地数据库与界面的链接,可以使得应用程序具备更强大的数据处理能力,提高应用程序的用户体验。

本文将向读者介绍如何在安卓应用程序开发中实现本地数据库与界面的链接。在本文中,我们将使用SQLite数据库,该数据库在安卓系统中自带。同时,我们也将使用安卓开发中常用的Java语言和Android Studio开发工具。

之一步:在Android Studio中创建新项目

我们需要在Android Studio中创建一个新的项目。在创建项目的过程中,将应用程序所需的各项配置进行设置。在本文中,我们假定读者已经具有一定的安卓应用程序开发经验,因此不再赘述创建新项目的步骤。

第二步:创建SQLite数据库

在安卓开发中,实现本地数据库的关键技术就是SQLite。SQLite是一种轻型、小巧、可靠、快速的关系型数据库管理系统,特别适用于嵌入式设备和移动设备等场景。安卓系统默认已经集成了SQLite数据库,因此我们可以直接在应用程序中使用SQLite。

在开始创建SQLite数据库之前,我们需要了解SQLite数据库的特点。SQLite的优点在于:它是一个轻巧的数据库,而且将其集成到一个应用程序中非常方便,因为它只需要一个可扩展的SQLlite数据表格。SQLite的缺点在于:它不适合大型数据操作。如果应用程序需要处理大量数据,就需要选择其他的关系型数据库管理系统。

创建SQLite数据库的步骤如下:

1. 创建SQLiteHelper类

在应用程序中创建一个SQLiteHelper类,该类用于创建和升级数据库。SQLiteHelper类继承了Android系统提供的SQLiteOpenHelper类。SQLiteOpenHelper类是SQLite数据库的管理器,提供了创建和升级数据库的方法。

创建SQLiteHelper类的步骤如下:

a. 在Android Studio中创建一个Java类。命名该类为SQLiteHelper。

b. 在SQLiteHelper类中增加以下代码:

“`java

public class SQLiteHelper extends SQLiteOpenHelper {

public SQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {

super(context, name, factory, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

// 创建数据库表格

}

@Override

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

// 升级数据库

}

}

“`

在该类中,我们重写了onCreate方法和onUpgrade方法。onCreate方法用于在新建数据库时创建数据表格。onUpgrade方法用于升级数据库。当我们需要改变数据库结构或者数据表格结构时,就需要升级数据库。

2. 创建数据表格

创建数据表格的步骤如下:

a. 在SQLiteHelper类中,重写onCreate方法。

“`java

@Override

public void onCreate(SQLiteDatabase db) {

String CreateTable = “create table if not exists student(id integer primary key, name text)”;

db.execSQL(CreateTable);

}

“`

在该方法中,我们使用了SQL语句创建了一个students的数据表格,该数据表格包含id和name两个字段。id为主键,name为文本类型。

b. 在MnActivity中,调用SQLiteHelper类的实例创建方法创建数据库。

“`java

helper = new SQLiteHelper(this, “student.db”, null, 1);

helper.getWritableDatabase();

“`

在该方法中,我们使用SQLiteHelper类的构造函数创建数据库。该构造函数需要接收四个参数:Context、数据库名称、游标工厂和数据库版本。

3. 实现增删改查操作

实现增删改查操作的步骤如下:

a. 在SQLiteHelper类中,增加insert、delete、update和select方法。

“`java

public void insert(ContentValues values) {

SQLiteDatabase db = getWritableDatabase();

db.insert(TABLE_NAME, null, values);

db.close();

}

public void delete(String selection, String[] selectionArgs) {

SQLiteDatabase db = getWritableDatabase();

db.delete(TABLE_NAME, selection, selectionArgs);

db.close();

}

public void update(ContentValues values, String selection, String[] selectionArgs) {

SQLiteDatabase db = getWritableDatabase();

db.update(TABLE_NAME, values, selection, selectionArgs);

db.close();

}

public Cursor select(String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) {

SQLiteDatabase db = getReadableDatabase();

Cursor cursor = db.query(TABLE_NAME, columns, selection, selectionArgs, groupBy, having, orderBy);

return cursor;

}

“`

在以上代码中,我们使用了SQLiteDatabase类提供的insert、delete、update和select方法。这些方法可以分别用于将数据插入到数据库中、从数据库中删除数据、更新数据库中的数据和查询数据库中的数据。

b. 在MnActivity中,实现对sqlite数据库数据的增删改查操作。

“`java

public void insertData(String name) {

ContentValues values = new ContentValues();

values.put(“name”, name);

helper.insert(values);

}

public void deleteData(String name) {

String whereClause = “name=?”;

String[] whereArgs = new String[]{name};

helper.delete(whereClause, whereArgs);

}

public void updateData(String oldName, String newName) {

ContentValues values = new ContentValues();

values.put(“name”, newName);

String whereClause = “name=?”;

String[] whereArgs = new String[]{oldName};

helper.update(values, whereClause, whereArgs);

}

public void queryData() {

String[] columns = new String[]{“id”, “name”};

Cursor cursor = helper.select(columns, null, null, null, null, null);

while (cursor.moveToNext()) {

// 获取数据

}

}

“`

在以上代码中,我们实现了对sqlite数据库数据的增删改查操作。在insertData方法中,我们向数据表格中插入一条name数据。在deleteData方法中,我们删除了name为指定值的数据。在updateData方法中,我们更新了name为指定值的数据。在queryData方法中,我们查询了所有的数据。在查询后,我们可以获取数据并在界面上显示。

第三步:创建界面

在完成本地数据库的创建和增删改查操作之后,我们需要将数据库的数据显示在应用程序的界面上。创建安卓应用程序的界面,打开你的Android Studio中,选择res文件夹,在文件夹中新建一个layout文件夹,在其下新建一个xml布局文件来定义应用程序的界面,这些都是常规操作,在此不再赘述。

在定义好应用程序的布局后,我们可以在MnActivity中实现界面和本地数据库的连接和交互。

“`java

private ListView listView;

private ArrayAdapter adapter;

private ArrayList list = new ArrayList();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_mn);

// ListView

listView = findViewById(R.id.list_view);

adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list);

listView.setAdapter(adapter);

// SQLite

helper = new SQLiteHelper(this, “student.db”, null, 1);

helper.getWritableDatabase();

// Button

findViewById(R.id.btn_insert).setOnClickListener(view -> {

// 添加数据操作

String name = “Kobe Bryant”;

insertData(name);

list.add(name);

adapter.notifyDataSetChanged();

});

findViewById(R.id.btn_delete).setOnClickListener(view -> {

// 删除数据操作

String name = “Kobe Bryant”;

deleteData(name);

list.remove(name);

adapter.notifyDataSetChanged();

});

findViewById(R.id.btn_update).setOnClickListener(view -> {

// 更新数据操作

String oldName = “Kobe Bryant”;

String newName = “LeBron James”;

updateData(oldName, newName);

list.set(list.indexOf(oldName), newName);

adapter.notifyDataSetChanged();

});

findViewById(R.id.btn_query).setOnClickListener(view -> {

// 查询数据操作

queryData();

});

}

“`

在以上代码中,我们使用了ListView控件和ArrayAdapter适配器来实现界面的显示。ListView控件用于显示数据,ArrayAdapter适配器用于将数据显示在ListView控件中。

同时,我们使用了Button控件,分别实现了插入数据、删除数据、更新数据和查询数据的操作。当我们在界面中执行这些操作时,应用程序会将相应的操作同步到本地SQLite数据库中。

相关问题拓展阅读:

怎么连接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和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)

参考下面代码及代码中的注释即可岩哗:

PHP代码:

 

conn.php是连接MySQL数据库的。代码如下:

login.php代码:

 

class LoginHandler implements Runnable {

@Override

public void run() {

// TODO Auto-generated method stub

//get username and password;

userName = user_name.getText().toString().trim();

password = pass_word.getText().toString().trim();

//连接到服务器的地址,我监听的是8080端口

String connectURL=”网站地址/text0/com.light.text/login.php/”;

//填入用户名密码和连接地址

boolean isLoginSucceed = gotoLogin(userName, password,connectURL);

//判断返回值是否为true,若是的话就跳到主页。

if(isLoginSucceed){

Intent intent = new Intent();

intent.setClass(getApplicationContext(), HomeActivity.class);

startActivity(intent);

proDialog.diiss();

}else{

proDialog.diiss();

// Toast.makeText(ClientActivity.this, “登入错误”, Toast.LENGTH_LONG).show();

System.out.println(“登入错误”);

}

}

}

//登入的方法,传入用户 密码 和连接地址

private boolean gotoLogin(String userName, String password,String connectUrl) {

String result = 唯大null; //用来取得返回的String;

boolean isLoginSucceed = false;

//test

System.out.println(“username:”+userName);

System.out.println(“password:”+password);

//发送post请求

HttpPost httpRequest = new HttpPost(connectUrl);

//Post运作传送变数必须用NameValuePair阵列储存

List params = new ArrayList();

params.add(new BasicNameValuePair(“name”,userName));

params.add(new BasicNameValuePair(“pwd”,password));

try{

//发出HTTP请求

httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));

//取得HTTP response

HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);

//若状态码为200则请求成功,取到返回数据

if(httpResponse.getStatusLine().getStatusCode()==200){

//取出字符串

result=EntityUtils.toString(httpResponse.getEntity());

ystem.out.println(“result= “+result);

}

}catch(Exception e){

e.printStackTrace();

}

//判断返回的数据是否为php中成功登入是输出的

if(result.equals(“login succeed”)){

isLoginSucceed = true;

}

return isLoginSucceed;

}

关于安卓编程怎么链接界面到本地数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 安卓编程实战:实现本地数据库与界面的链接 (安卓编程怎么链接界面到本地数据库)