Android SQLite用法
1、创建SQLite数据库
需要自己创建一个类来继承SQLiteOpenHelper类
SQLiteOpenHelper类是一个创建SQLite数据库的辅助类
继承此类的时候需要重写三个方法
public dbHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
//此方法在实例化此辅助类的时候,传入相应的参数便可以自动创建数据库
//Context 上下文对象
//String 数据库名称
//CursorFactory 游标工厂,可以不填
// version 数据库版本号,更新时使用
}
@Override
public void onCreate(SQLiteDatabase db) {
//db.execSQL("create table Book(_id integer primary key," + "_name text,"
//+ "_password text)");
//Log.i("TAG", "名称为Book的表创建完成");
//此方法在数据库创建的同时执行,建表操作放在此处便可以避免表明重复而造成的程序崩溃
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//数据库升级时使用
}
2、数据库的增、删、改、查
在需要创建数据库的类中实例化辅助类,并且获取SQLiteDatabases 对象
1、
dbHelper dbh;//外围定义句柄值
public SQLiteDatabase getDatabases() {//创建一个方法,用来获取SQLiteDatabases对象
dbh = new dbHelper(MainActivity.this, "book.db", null, 1);//传入数据
//上下文对象,表名称,游标工厂,数据库版本号
Log.i("TAG", "名称为book.db的数据库创建完成");//提示
return dbh.getWritableDatabase();//返回可写的SQLiteDatabases
}
2、
获取SQLiteDatabases句柄值
SQLiteDatabase db = getDatabases();//获取控制数据
添加数据
ContentValues cv = new ContentValues();
cv.put("_name", "liujunfei");
cv.put("_password", "zheshimima");
db.insert("Book", null, cv);
//insert方法参数
//第一个参数:需要插入的表名称
//第二个参数:可以置空(暂时不知道)
//第三个参数:ContentValues 需要插入数据的键值对
Log.i("TAG", "数据插入完成");
删除数据
db.execSQL("delete from Book where _id=2");//通过ID删除数据 必须是primary key 不然报错
Log.i("TAG", "数据删除成功" );
查询数据
Cursor cursor = db.rawQuery("select*from Book", null);//选择表
while (cursor.moveToNext()) {//遍历数据
String name = cursor.getString(cursor
.getColumnIndex("_name"));//获取列名_name下的所有数据
Log.i("TAG", "查询到的用户: " + name);
Message msg = Message.obtain();
msg.what = 1;
msg.obj = name;
handler.sendMessage(msg);//通过handler发送数据
}
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 1:
String result = (String) msg.obj;//获取到发送过来的数据
list_user_name.add(result);//将发送过来的数据添加到ArrayList中
lv.setAdapter(new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1, list_user_name));
break;
}
};
};
查询特定的数据
Cursor cursor = db.rawQuery(
"select*from Book where _name =? and _password=?",
new String[] { "liujunfei", "zheshimima" });//在此处填写需要查询的数据
while (cursor.moveToNext()) {
String name = cursor.getString(cursor
.getColumnIndex("_name"));
Log.i("TAG", "查询到的用户: " + name);
}
转载于:https://www.cnblogs.com/MainActivity/p/6011215.html
Android SQLite用法相关推荐
- android spinner 按钮,android sqlite和spinner的用法示例
在此示例中,我们在单击按钮时添加了标签,并在微调器上显示了所有添加的标签.如上例所示,需要扩展SQLiteOpenHelper类以在sqlite上执行操作. 我们在DatabaseHandler类中重 ...
- android用于查询数据的方法,android: SQLite查询数据
掌握了查询数据的方法之后,你也就将数据库的 CRUD 操 作全部学完了.不过千万不要因此而放松,因为查询数据也是在 CRUD 中最复杂的一种 操作. 我们都知道 SQL 的全称是 Structured ...
- Python SQLite 用法
Python SQLite 用法 具体可以参考网址 代码: #导入 import sqlite3 #连接库,如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象. # test.db:数据路路 ...
- android sqlite 中 创建表 不要使用 IF NOT EXISTS + TA...
2019独角兽企业重金招聘Python工程师标准>>> android sqlite 中 创建表 不要使用 "IF NOT EXISTS " + TABLE_NA ...
- android SQLite 批量插入数据慢的解决方案 (针对于不同的android api 版本)
android SQLite 批量插入数据慢的解决方案 (针对于不同的android api 版本) 参考文章: (1)android SQLite 批量插入数据慢的解决方案 (针对于不同的andro ...
- 【转】 Android - LayoutInflate用法
[转自]http://blog.csdn.net/scut1135/article/details/7055461 通俗的说,inflate就相当于将一个xml中定义的布局找出来. 因为在一个Acti ...
- Android SQLite数据库的详细使用
SQLite 简介 SQLite 是一款内置到移动设备上的轻量型的数据库,是遵守ACID(原子性.一致性.隔离性.持久性)的关联式数据库管理系统,多用于嵌入式系统中 SQLite 数据库是无类型的,可 ...
- android 数据库表格数据库数据库中,Android SQLite数据库中的表详解
Android SQLite数据库 前言 以前写PHP的时候,内置了print_r()和var_dump()两个函数用于打印输出任意类型的数据内部结构,现在做Android的开发,发现并没有这种类似的 ...
- 利用SQLChiper对Android SQLite数据库加密
利用SQLChiper对Android SQLite数据库加密 前言: 上篇文章讲了Android studio+SQLCipher加密SQLite数据库的几个坑,跳过这几个坑,那么SQLCipher ...
最新文章
- 如何为应用选择最佳的FPGA(下)
- 求职面试的十大错误,你犯过吗? | 每日趣闻
- android tabhost --android UI 学习
- 设计模式 -- (14)中介者模式
- java 网络文件_java实现从网络下载多个文件
- O_NONBLOCK与O_NDELAY有何不同?
- sir模型初始值_经典传染病的SIR模型(基于MATLAB)
- 怎么安装google nik collection 1.2.11.win插件
- 数字签名与数字加密的区别
- 三种健身妙法-每天五分钟简便易行有宏效
- mysql 核对_mysql数据库核对
- 开发常用镜像站 - 阿里云镜像站
- 【操作系统】第三章:内存管理
- 1.密码学概念及古典密码
- h5 Canvas时钟制作
- 中国智慧灯杆摄像机市场发展趋势与前景规模预测报告2022-2028年
- 震惊——JS中百度地图开放平台API尽然是这样使用
- Hadoop--HDFS的安装及配置使用
- 400错误和404错误
- 主键冲突报什么代码_程序员经典面试题,Mysql自增主键为什么不连续