Android轻松打造本地数据存储——SQLite数据库创建 (android创建sqlite数据库)

在移动应用开发中,数据存储一直是一个重要的问题。而且在App的功能实现中,往往需要在本地进行数据的存储和管理。Android中有许多的本地数据存储方式,其中SQLite数据库是常见的一种。

一、什么是SQLite数据库

SQLite是一种轻量级的数据库,它是一个不需要独立的服务器进程的库函数。它所支持的数据类型有NULL、INTEGER、REAL、TEXT和BLOB,同时也保证了数据的正确性和安全性。SQLite可以用在任何一个需要本地数据存储的项目中,例如:Android、iOS等移动App应用,也可作为单机模式下的一种轻量级数据库。

二、SQLite数据库的使用

在Android中,SQLite数据库的使用十分的简单。使用SQLite首先需要先确定数据表的字段及对应数据类型。(这里以一个学生表为例,字段包括id、name、gender、age、phone)

“`

CREATE TABLE student(

id INTEGER PRIMARY KEY AUTOINCREMENT,

name VARCHAR(20),

gender VARCHAR(5),

age INTEGER,

phone CHAR(11)

);

“`

在Android中SQLite的使用,可以选择使用原始SQL语句来创建SQLite数据库,也可以使用SQLiteOpenHelper类来创建SQLite数据库。

1.使用原始SQL语句创建

(1)创建SQLiteOpenHelper类,如下所示:

“`

public class MySQLiteHelper extends SQLiteOpenHelper {

public static final String DATABASE_NAME = “student.db”;

public static final int DATABASE_VERSION = 1;

public MySQLiteHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

// 创建表

db.execSQL(“CREATE TABLE student(” +

“id INTEGER PRIMARY KEY AUTOINCREMENT,” +

“name VARCHAR(20),” +

“gender VARCHAR(5),” +

“age INTEGER,” +

“phone CHAR(11))”);

}

@Override

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

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

onCreate(db);

}

}

“`

(2)在需要使用的Activity中创建MySQLiteHelper实例,并调用 getWritableDatabase() 或 getReadableDatabase() 方法即可。

“`

MySQLiteHelper helper = new MySQLiteHelper(this);

SQLiteDatabase db = helper.getWritableDatabase(); // 获取写对象

“`

这里需要注意的是,如果数据库不存在则自动创建,如果存在,则直接打开。

2.使用SQLiteOpenHelper类创建

(1)定义需要创建的表,并将其写到onCreate()中,如下所示:

“`

public class MyDatabaseHelper extends SQLiteOpenHelper {

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

+ “id integer primary key autoincrement, “

+ “name text, “

+ “gender text, “

+ “age integer, “

+ “phone char(11) )”;

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) {

}

}

“`

(2)声明MyDataBaseHelper实例,如下所示:

“`

MyDatabaseHelper dbHelper = new MyDatabaseHelper(this, “student.db”, null, 1);

SQLiteDatabase db = dbHelper.getWritableDatabase();

“`

这样我们就建立起了一个SQLite数据库。可以通过db.rawQuery()方法进行数据的存储和管理。

三、SQLite数据库的数据操作

1.添加数据

要向表中添加数据,可以使用SQL语句来实现,也可以使用框架提供的API实现。

(1)使用SQL语句添加数据,如下所示:

“`

String sql = “insert into student(id,name,gender,age,phone) values(null,?,?,?,?)”;

db.execSQL(sql, new Object[]{“小明”,”男”,15,”13111112222″});

“`

通过 ? 占位符将数据进行占位,然后使用 Object 数组来传递数据,其中 ? 的个数应该与字段的个数相同。

(2)使用框架提供的API添加数据,如下所示:

“`

ContentValues values = new ContentValues();

values.put(“name”, “小明”);

values.put(“gender”, “男”);

values.put(“age”, “15”);

values.put(“phone”, “13111112222”);

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

“`

2.查询数据

查询数据同样也是使用SQL语句,可以选择返回结果为Cursor对象的查询方式,也可以选择将结果封装在一个JavaBean对象中返回。我们这里使用返回Cursor的查询方式。如下所示:

“`

String sql = “select * from student”;

Cursor cursor = db.rawQuery(sql, null);

if (cursor.moveToFirst()) {

do {

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

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

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

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

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

// 将查询到的数据打印出来

Log.d(TAG, “queryData: ” + “id==” + id + ” 类型==” + name + ” 年龄==” + age + ” ==” + phone);

} while (cursor.moveToNext());

}

cursor.close();

“`

3.删除数据

删除数据同样也是使用SQL语句,如下所示:

“`

db.delete(“student”, “id=?”, new String[]{“1”});

“`

这里的 “student” 表示需要操作的数据表名, “id=?” 表示需要删除的记录的id值,如果有多个记录需要删除,可以使用分号分隔。delete() 的第三个参数表示此处条件的取值,放在一个数组中,如果有多个条件,同样也可以使用分号分隔。其中,?为占位符,用于防止SQL注入攻击。

4.更新数据

更新数据同样也是使用SQL语句,如下所示:

“`

ContentValues values = new ContentValues();

values.put(“name”, “张三”);

db.update(“student”, values, “id=?”, new String[]{“1”});

“`

update() 方法的之一个参数同样也是需要更新的数据表名,第二个参数是一个ContentValues对象,这个对象中需要存放更新后的数据的键值对,第三个参数和删除数据中的一样,表示更新的条件。

四、

本文主要介绍了在Android开发中如何使用SQLite数据库进行本地数据存储的创建、数据操作等流程。SQLite作为一种轻量级数据库,操作简单,同时相较与其他数据库产品,SQLite更加灵活,支持数据复制和并发访问等功能。因此,在Android丰富的生态圈中,SQLite数据库得到了广泛的应用。希望本文所介绍的SQLite数据库操作可以帮助到读者,更好地解决数据存储的问题。

相关问题拓展阅读:

android SQLite数据库操作问题!!创建数据库在data下找不到!求指导~~~

在data/data/你的项目的主函数的包名锋兆下面有个database的目录下面找啊。如果没有文件你的创建数据库的代码有问题了。或者你只是写代码了没在任何地方调用你的数据库侍基羡的那个类,你可以简单的创建一个表老拍 插入或者删除随便操作一下就会有的。

你橘宽让用的是巧祥手机测试的圆局还是模拟器~~??

手机一般都有保护,打不开data的,我手机note2,我点击前面的+就打不开

一般在File Explorer data目录下为空的话,不知道你是不是一边插着芹埋手机设备,一边又在开模拟器看data目录下数据,如果是这样,把手机和模拟器都关配雀了,然后把手机拔了,再用模拟器重新运行项目,应该就可以看到了。嫌卖蚂

android新建的SQLite数据库无法使用

SQLite是轻量级的、嵌入式的、关系型数据库,目前已经在iPhone、Android等手机系统中使慧誉用,SQLite可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间枯薯,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。

在android中当需要操作SQLite数据库的时候需要得到一个SQLiteOpenHelper对象,而SQLiteOpenHelper是一个抽象类,用户需要继承这个类,并实现该类中的一些方法。

1、继承SQLiteOpenHelper之后就拥有了以下两个方法:

◆getReadableDatabase() 创建或者打开一个查询数据库

◆getWritableDatabase()创建或者打开一个可写数据库

◆他们都会返回SQLiteDatabase对象,用户通过得到的SQLiteDatabase对象进行后续操作

2、同时用户还可以覆盖以下回调函数,再对数据库进行操作的时候回调以下方法:

◆onCreate(SQLiteDatabase):在数据库之一次创建的时候会调用这个方法,一般我们在这个方法里边创建数据库表。

◆onUpgrade(SQLiteDatabase,int,int):当数据库需要修改的时候,Android系统会主动的调用这个方法。一般我们在这个方法里边删除数据库表,并建立新的数据库表,当然是否还需要做其他的操作,完全没碧者取决于应用程序的需求。

◆onOpen(SQLiteDatabase):这是当打开数据库时的回调函数,一般也不会用到。

问对人了,刘继贺,应当对的有``

Android中SQLite创建数据库时,之一次还好,第二次修改表后出现了图中的错误,求大神指教!!

安卓对SQLite表中的主键字段要拦慎腊求比较苛刻,必孝皮须使用 _id

算简滑是比较霸道吧。不过我们也没办法。。呵呵

你改改试一试, 我上次也是遇到这样的问题,调了半天都没解决。查API才发现的。希望能帮到你

android创建sqlite数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于android创建sqlite数据库,Android轻松打造本地数据存储——SQLite数据库创建,android SQLite数据库操作问题!!创建数据库在data下找不到!求指导~~~,android新建的SQLite数据库无法使用,Android中SQLite创建数据库时,之一次还好,第二次修改表后出现了图中的错误,求大神指教!!的信息别忘了在本站进行查找喔。


数据运维技术 » Android轻松打造本地数据存储——SQLite数据库创建 (android创建sqlite数据库)