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 数据库的创建与打开、数据库表的增删改查等操作。在实际开发中,我们可以根据实际需要,灵活运用这些操作,实现数据的存储与读取。
相关问题拓展阅读:
参考如下内容:
你通过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为数据列的列名)方法用于存入数据、getAsXxxx(String key)方法用于取出数据
Android对数据哭的访问可以使用ContentProvider, ContengResolver。游卖只能访问内部数据库sqlite。常用的做法是神迟逗用WebService来做网络数据库旦皮连接,Android通过Http来访问WebService,然后WebService提供对数据库的相关操作。这样就间接的实现了以Android操作管理SQL Server 数据库。希望对你有所启发或帮助,祝愉快!
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 怎么调用数据库方法的信息别忘了在本站进行查找喔。
创新互联服务器托管拥有成都T3+级标准机房资源,具备完善的安防设施、三线及BGP网络接入带宽达10T,机柜接入千兆交换机,能够有效保证服务器托管业务安全、可靠、稳定、高效运行;创新互联专注于成都服务器托管租用十余年,得到成都等地区行业客户的一致认可。
网站栏目:「Android数据库操作」——实现数据存储与读取(android数据库操作)
新闻来源:http://www.mswzjz.cn/qtweb/news14/41464.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能