「Android 数据库操作」——实现数据存储与读取 (android 数据库 操作)

Android 数据库操作:实现数据存储与读取

在开发 Android 应用程序时,常常需要使用数据库进行数据的存储与读取。Android 支持多种数据库,包括 SQLite、Realm 等。本文将以 SQLite 数据库为例,介绍 Android 数据库操作的实现方法,包括建表、增删改查等操作。

一、SQLite 数据库的创建与打开

在 Android 应用程序中创建 SQLite 数据库,可以通过使用 SQLiteOpenHelper 类。该类提供了创建、打开、更新数据库的方法。

在使用 SQLiteOpenHelper 类创建数据库时,需要重写该类的 onCreate() 方法和 onUpgrade() 方法。onCreate() 方法在数据库被创建时调用,通常用于创建数据库表、初始化数据等操作。onUpgrade() 方法在数据库版本升级时调用,可以用于更新表结构、修改数据等操作。

以下是一个创建数据库的例子:

“`java

public class MyDatabaseHelper extends SQLiteOpenHelper {

public static final String CREATE_BOOK = “create table Book (“

+ “id integer primary key autoincrement, “

+ “author text, “

+ “price real, “

+ “pages integer, “

+ “name text)”;

public MyDatabaseHelper(Context context, String name,

SQLiteDatabase.CursorFactory factory, int version) {

super(context, name, factory, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(CREATE_BOOK);

}

@Override

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

// do something when upgrading

}

}

“`

在上面的例子中,我们创建了一个名为 Book 的表,该表包含四个字段:id(主键)、author(作者)、price(价格)、pages(页数)和 name(书名)。

二、数据库表的增删改查操作

在实现 Android 数据库操作中,增删改查是最基本的操作。下面我们将详细介绍如何进行这些操作。

1. 插入数据

向数据库表中插入数据,可以使用 SQLiteDatabase 中的 insert() 方法。该方法需要传递三个参数:表名、空列的默认值和要插入的数据。以下是一个插入数据的例子:

“`java

ContentValues values = new ContentValues();

values.put(“author”, “Tom”);

values.put(“price”, 20.3);

values.put(“pages”, 300);

values.put(“name”, “Android Development”);

SQLiteDatabase db = dbHelper.getWritableDatabase();

db.insert(“Book”, null, values);

“`

在上面的例子中,我们首先创建了一个 ContentValues 对象,用于存储要插入的数据。然后通过 getWritableDatabase() 方法获取 SQLiteDatabase 对象,调用 insert() 方法向 Book 表中插入数据。

2. 更新数据

更新数据库表中的数据,可以使用 SQLiteDatabase 中的 update() 方法。该方法需要传递四个参数:表名、更新的数据、更新的条件和更新的条件参数。以下是一个更新数据的例子:

“`java

ContentValues values = new ContentValues();

values.put(“price”, 30.5);

SQLiteDatabase db = dbHelper.getWritableDatabase();

db.update(“Book”, values, “name = ?”, new String[] { “Android Development” });

“`

在上面的例子中,我们首先创建了一个 ContentValues 对象,用于存储要更新的数据。然后通过 getWritableDatabase() 方法获取 SQLiteDatabase 对象,调用 update() 方法更新 Book 表中名为 Android Development 的书的价格。

3. 删除数据

从数据库表中删除数据,可以使用 SQLiteDatabase 中的 delete() 方法。该方法需要传递三个参数:表名、删除条件和删除条件参数。以下是一个删除数据的例子:

“`java

SQLiteDatabase db = dbHelper.getWritableDatabase();

db.delete(“Book”, “pages > ?”, new String[] { “500” });

“`

在上面的例子中,我们通过 getWritableDatabase() 方法获取 SQLiteDatabase 对象,调用 delete() 方法删除 Book 表中页数大于 500 的书。

4. 查询数据

从数据库表中查询数据,可以使用 SQLiteDatabase 中的 query() 方法。该方法需要传递七个参数:表名、返回的字段、查询条件、查询条件参数、分组条件、having 条件和排序条件。

以下是一个查询数据的例子:

“`java

SQLiteDatabase db = dbHelper.getWritableDatabase();

Cursor cursor = db.query(“Book”, null, null, null, null, null, null);

if (cursor.moveToFirst()) {

do {

String author = cursor.getString(cursor.getColumnIndex(“author”));

String name = cursor.getString(cursor.getColumnIndex(“name”));

double price = cursor.getDouble(cursor.getColumnIndex(“price”));

int pages = cursor.getInt(cursor.getColumnIndex(“pages”));

} while (cursor.moveToNext());

}

cursor.close();

“`

在上面的例子中,我们通过 getWritableDatabase() 方法获取 SQLiteDatabase 对象,调用 query() 方法查询 Book 表中的所有数据。然后通过 moveToFirst() 和 moveToNext() 方法遍历查询结果,获取想要的数据。

三、

通过本文,我们了解了 Android 数据库操作的实现方法,包括 SQLite 数据库的创建与打开、数据库表的增删改查等操作。在实际开发中,我们可以根据实际需要,灵活运用这些操作,实现数据的存储与读取。

相关问题拓展阅读:

android 怎么往数据库里面添加数据

参考如下内容:

你通过getText()方法侍兄盯首先得到输入的值,然后调用数据库的插入方法 db.insert();插入到数尘判据库中就行 就想这样

EditText et ;

String num = et.getText().toString();

public void addData(String num) {

SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(“num”, num);

db.insert(“表名”, null, values);

}

当你调用这个 addData()方法时就会向老和数据库中插入数据了

一、引入

数据库创建的问题解决了,接下来就该使用数据库实现应用程序功能的时候了。基

本的操作包括创建、读取、更新、删除,即我们通常说的 CRUD(Create, Read, Update, Delete)。

在实现这些操作的时候,我们会使用到两个比较重要的类 SQLiteDatabase 类和 Cursor 类蔽吵丛。

二、创建表

1,execSQL(String sql):执行一条 sql 语句,且执行操作不能为 SELECT

因为它的返回值为 void,所以推荐使用 insert、update 方法等

2.,execSQL (String sql,Object bindArgs)

sql:执行一条 sql 语句

bindArgs:为 sql 语句中的?赋值

三、添加数据

1、execSQL(String sql)

2、使用对象的 insert 方法

ContentValues values = new ContentValues();

values.put(USERNAME, user.getUsername());

values.put(PASSWORD, user.getPassword());

db.insert(TABLE_NAME, null, values);

参数:

table:数据库中的表名

nullColumnHack:指定默认插入字段,为 null 时能插入数据

values:表示插入字段所对应的值,使用 put 方法。

四、删除数据

1、execSQL(String sql)

2、使用对象的 delete 方法

String whereClaues=”_id=?”;

String whereArgs={String.valueOf(id)};

//db.delete(TABLE_NAME, “_id=”+id, null);

db.delete(TABLE_NAME, whereClaues, whereArgs);

参数

table:数据库的表名

whereClause:where 子句,比如:_id=?

whereArgs:where 子句中?的值

五、修改数据

1、execSQL(String sql)

2、使用对象的 delete 方法

ContentValues values = new ContentValues();

values.put(USERNAME, user.getUsername());

values.put(PASSWORD, user.getPassword());

String whereClaues=”_id=?”;

String whereArgs={String.valueOf(user.getId())};

db.update(TABLE_NAME, values, whereClaues, whereArgs);

参数

table:数据库的表名

values:代表要修改的值,修改方法还是宏樱 put(key,values)

whereClause:条件子句,比如 id=?,name=?

whereArgs:为 whereClause 中的?赋值,比如:new String{“1″,”张三”}

图:

参考代码:

程序内使用SQLite数据库是通过SQLiteOpenHelper进行操作  

1.自己写个类继承SQLiteOpenHelper,重写以下3个方法  

public void onCreate(SQLiteDatabase db)   碰肆

{//创建数据库时的操作,如建表}  

   

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

{  

//版本更新的操作  

}  

2.    通过SQLiteOpenHelper的getWritableDatabase()获得一个SQLiteDatabase数据库,以后的操作都是对SQLiteDatabase进行操作。  

3.对得到的SQLiteDatabase对象进行增,改,删,查等操作。  

代码  

package cx.myNote;  

   

import android.content.ContentValues;  

import android.content.Context;  

import android.content.Intent;  

import android.database.Cursor;  

import android.database.sqlite.SQLiteDatabase;  

import android.database.sqlite.SQLiteOpenHelper;  

   

//DBOptions for login  

public class DBOptions {  

private static final String DB_NAME = “notes.db”;  

private static final String DB_CREATE=”create table logininf(name text,pwd text)”;  

public class DBHelper extends SQLiteOpenHelper  

{  

   

public DBHelper(Context context) {  

super(context,DB_NAME, null, 1);  

}  

   

@Override  

public void onCreate(SQLiteDatabase db) {  

// TODO Auto-generated method stub  

//建表  

   db.execSQL(DB_CREATE);  

}  

  

@Override  

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

// TODO Auto-generated method stub  

db.execSQL(“drop table if exists logininf”);  

onCreate(db);  

}  

  

}  

private Context context;  

private SQLiteDatabase db;  

private DBHelper dbHelper;  

public  DBOptions(Context context)  

{  

this.context = context;  

dbHelper = new DBHelper(context);  

db=dbHelper.getReadableDatabase();  

  

}  

  //自己写的方法,对数据库进行操作  

public String getName()  

{  

  

Cursor cursor = db.rawQuery(“select name from logininf”, null);  

cursor.moveToFirst();  

return cursor.getString(0);

}  

public int changePWD(String oldP,String pwd)  

{  

ContentValues values = new ContentValues();  

values.put(“pwd”, pwd);  

return db.update(“logininf”, values,”pwd=”+oldP, null);  

}  

}  

insert方法插入的一行记录使用ContentValus存放,ContentValues类似于Map,它提供了put(String key, Xxx value)(其中key为数据列的列名)方法用于存入数据、getAsX(String key)方法用于取出数据

android访问数据库怎么实现

Android对数据哭的访问可以使用ContentProvider, ContengResolver。游卖只能访问内部数据库sqlite。常用的做法是神迟逗用WebService来做网络数据库旦皮连接,Android通过Http来访问WebService,然后WebService提供对数据库的相关操作。这样就间接的实现了以Android操作管理SQL Server 数据库。希望对你有所启发或帮助,祝愉快!

android 怎么调用数据库方法

android读取数据库可以简模使用sqlite一些api进行读取拦春,实例如下:

/**

* 查找一条数据

* @param uid

*/

public User find(Integer uid){

SQLiteDatabase db=dbOpenHelper.getReadableDatabase(); //创建数据库辅助类

Cursor cursor =db.rawQuery(“select * from user where uid=?”, new String{uid.toString()}); //创建一个游标

if(cursor.moveToFirst()){ //循环遍历查找数组

int uid2=cursor.getInt(cursor.getColumnIndex(“uid”));

String uname=cursor.getString(cursor.getColumnIndex(“uname”));

String uaddress=cursor.getString(cursor.getColumnIndex(“uaddress”简咐耐));

User user=new User();

user.setUid(uid2);

user.setUname(uname);

user.setUaddress(uaddress);

return user;

}

cursor.close();

return null;

}

SQLite也支持SQL标准类型,VARCHAR、CHAR、BIGINT等。

创建数据库

Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,只要继承 SQLiteOpenHelper 类,就可以创建数据库。继颂指承了SQLiteOpenHelper的子类,必须实现三个方法:

1、构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。

2、onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。

3、onUpgrage() 方法,它需要三个参数祥兄,一个野宴配 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样可以清楚如何把一个数据库从旧的模型转变到新的模型。

android 数据库 操作的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于android 数据库 操作,「Android 数据库操作」——实现数据存储与读取,android 怎么往数据库里面添加数据,android访问数据库怎么实现,android 怎么调用数据库方法的信息别忘了在本站进行查找喔。


数据运维技术 » 「Android 数据库操作」——实现数据存储与读取 (android 数据库 操作)