android中sqlite数据库,Android中SQLite数据库基础操作

android中sqlite数据库,Android中SQLite数据库基础操作Android中的数据库存储是直接使⽤了SQLite。在Android应⽤中创建数据库后数据库⽂件是存储在/data/ data/应⽤包名/databases/下。
重要API接⼝
在Android中使⽤到SQLite会涉及到以下三个类或接⼝,分别如下:
SQLiteOpenHelper
SQLiteOpenHelper 构造⽅法,⼀般传递⼀个要创建的数据库名称name参数。主要的⽅法如下:onCreate 创建数据库时调⽤
onUpgrade 版本更新时调⽤
getReadableDatabase 创建或打开⼀个只读数据库
getWritableDatabase 创建或打开⼀个读写数据库
SQLiteDatabase
openOrCreateDatabase 打开或者创建⼀个数据库。主要⽅法如下:insert 添加⼀条记录
delete 删除⼀条记录
query 查询记录
update 更新记录
视力保健远眺图
execSQL 执⾏⼀条SQL语句
close 关闭数据库
CursorgetCount 总记录条数
isFirst 判断是否第⼀条记录
isLast 判断是否最后⼀条记录
moveToFirst 移动到第⼀条记录
moveToLast 移动到最后⼀条记录
move 移动到指定记录
moveToNext 移动到下⼀条记录
moveToPrevious 移动到上⼀条记录
getColumnIndexOrThrow根据列名称获得列索引
getInt 获得指定列索引的int类型值
getString 获得指定列索引的String类型值
注:某些⽅法是有重载的,可以结合docs熟悉下。
具体实例
1、创建数据库只要⾃定义⼀个类继承SQLiteOpenHelper即可。在SQLiteOpenHelper的⼦类中⾄少需要实现三个⽅法,分别如下:构造⽅法,调⽤⽗类SQLiteOpenHelper的构造函数。需要四个参数:上下⽂环境(例如⼀个Activity);数据库名称;⼀个可选的游标⼯⼚(通常是null);⼀个正在使⽤的数据库版本。
onCreate⽅法,需要⼀个SQLiteDatabase对象作为参数,根据需要对这个对象填充表和初始化数据。
onUpgrade⽅法,需要三个参数:⼀个SQLiteDatabase对象,⼀个旧的版本号和⼀个新的版本号。
具体Java代码如下:/**
* 数据库操作助⼿类
* @author zuolongsnail
*/
public class AndroidSQLiteOpenHelper extends SQLiteOpenHelper {
// 数据库名称
public static final String DBNAME = "android.db";
// 数据库版本
public static final int VERSION = 2;
// 建表语句,⼤⼩写不敏感
private static final String CREATETABLE = "create table "
+ Person.TABLENAME
+ "(id string, name string, gender int, age int)";
public AndroidSQLiteOpenHelper(Context context) {
super(context, DBNAME, null, VERSION);
}
// 创建表
@Override
public void onCreate(SQLiteDatabase db) {
扫路刷
}
/
/ 更新表
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { this.deleteDB(db);
}
// 删除表
private void deleteDB(SQLiteDatabase db) {
}
}
2、对数据库表进⾏操作,包括添加、删除、修改和查询
有两种⽅法可以对数据库表进⾏操作,分别如下:使⽤execSQL⽅法执⾏SQL语句;
使⽤insert、delete、update和query⽅法,把SQL语句的⼀部分作为参数。
(注:查询数据库时执⾏SQL语句是使⽤SQLiteDatabase的rawQuery⽅法⽽不是execSQL)具体代码如下:/**
* 数据库管理类
* @author zuolongsnail
*/
public class DatabaseManager {
private AndroidSQLiteOpenHelper dbHelper;
aqsh-012public DatabaseManager(Context context) {
dbHelper = new AndroidSQLiteOpenHelper(context);
}
// 插⼊记录
public int insert(Person person) {
Log.e("SQLite", "----insert----");
SQLiteDatabase db = WritableDatabase();
db.beginTransaction();
try {
+ " values(?, ?, ?, ?)", new Object[] { person.id,
person.name, der, person.age });
db.setTransactionSuccessful();
} catch (Exception e) {
return 0;
} finally {
}
db.close();
钢骨架塑料复合管return 1;
}
// 删除记录
public int delete(Person person) {
Log.e("SQLite", "----delete----");
SQLiteDatabase db = WritableDatabase();
db.beginTransaction();
try {
db.setTransactionSuccessful();
} catch (Exception e) {
return 0;
} finally {
}
db.close();
return 1;
}
// 更新记录
public int update(Person person) {
Log.e("SQLite", "----update----");
SQLiteDatabase db = WritableDatabase();
db.beginTransaction();
try {
+ " set name=?, gender=?, age=? where id=?", new Object[] { person.name, der, person.age, person.id });
db.setTransactionSuccessful();
} catch (Exception e) {
return 0;
} finally {
}
db.close();
return 1;
}
// 查询记录
public ArrayList query(String id) {
Log.e("SQLite", "----query----");
SQLiteDatabase db = ReadableDatabase();
Cursor cursor;
Person person;
ArrayList list = new ArrayList();
// 若fileId为null或""则查询所有记录
if (id == null || id.equals("")) {
cursor = db.rawQuery("select * from " + Person.TABLENAME, null);
} else {
cursor = db.rawQuery("select * from " + Person.TABLENAME
+ " where id=?", new String[] { id });
}
while (veToNext()) {
person = new Person();
person.id = ColumnIndex("id"));
person.name = ColumnIndex("name"));
person.age = ColumnIndex("age"));
Log.e("SQLite", String());
list.add(person);
}
cursor.close();
db.close();
if (list.size() == 0) {
Log.e("SQLite", "****表中⽆数据****");
}
return list;
}
}
波特率发生器3、在shell中进⼊sqlite并使⽤sql语句操作数据库
启动命令⾏,执⾏adb shell命令,前提是启动了⼀个模拟器。进⼊/data/ data/应⽤包名/databases⽂件夹下,我们这⾥
是/data/data/code.sqlite/databases(确保此应⽤已经建⽴数据库,不然包名下是没有databases⽬录的)。查看databases⽬录下的数据库⽂件,这⾥可以看到数据库⽂件是android.db。
使⽤sqlite3命令进⼊sqlite来使⽤sql语句操作数据库,我们执⾏"sqlite3 android.db"命令。
使⽤".tables"命令查询数据库下有哪些表。可见我们这⾥有⼀张person表。
使⽤sql语句可以操作这张表,⽐如我们使⽤"select * from person;"可以查询到表中记录。
使⽤".quit"命令可以退出sqlite。
不倒翁沙袋

本文发布于:2024-09-22 16:49:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/277429.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据库   记录   操作
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议