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);
}
Android SQLite用法的更多相关文章
- Android sqlite管理数据库基本用法
Android操作系统中内置了sqlite数据库(有关sqlite数据库详细介绍见:http://zh.wikipedia.org/wiki/SQLite),而sqllite本身是一个很小型的数据库, ...
- Android SQLite 通配符查询找不到参数问题
使用Android SQLite中SQLiteDatabase类的query方法查询时,如果where中包含通配符,则参数会无法设置,如类似下面的方法查询时 SQLiteDatabase db = d ...
- Android Meun 用法
Android Meun 用法 点击菜单实体键弹出菜单:如下图 main_activity.xml <?xml version="1.0" encoding="ut ...
- Android ViewPager 用法
Android ViewPager 用法 场景:一般第一次打开应用程序时,程序会有一个提示页来给展现应用程序都有哪些功能:或者程序更新时,又更新哪些新特性,都可以使用ViewPager Demo 描述 ...
- Android+Sqlite 实现古诗阅读应用(三)
往期传送门: Android+Sqlite 实现古诗阅读应用(一) Android+Sqlite 实现古诗阅读应用(二) 加入截图分享的功能. 很多应用都有分享的功能,我也想在我的古诗App里加入这个 ...
- Android+Sqlite 实现古诗阅读应用(二)
传送门:Android+Sqlite 实现古诗阅读应用(一) Hi,又回来了,最近接到很多热情洋溢的小伙伴们的来信,吼开心哈,我会继续努力的=-=! 上回的东西我们做到了有个textview能随机选择 ...
- Android Sqlite 数据库版本更新
Android Sqlite 数据库版本更新 http://87426628.blog.163.com/blog/static/6069361820131069485844/ 1.自己写一个类继承 ...
- Android SQLite总结(一) (转)
Android SQLite总结(一) 郑海波 2012-08-21 转载请声明:http://blog.csdn.net/nuptboyzhb/article/details/7891887 前言 ...
- android SQLite使用SQLiteOpenHelper类对数据库进行操作
android SQLite使用SQLiteOpenHelper类对数据库进行操作 原文: http://byandby.iteye.com/blog/835580
随机推荐
- [转] 浅谈Trie树(字典树)
原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/6290732.html Trie树(字典树) 一.引入 字典是干啥的?查找字的. 字典树自然也是起查找 ...
- JavaWeb - Servlet教程
http://www.runoob.com/servlet/servlet-tutorial.html
- python3-多装饰器的执行顺序
[例]: def dec1(func): print("HHHA:0====>") def one(): print("HHHA:0.1====>" ...
- Tensorflow的Queue读取数据机制
参考链接:http://www.sohu.com/a/148245200_115128
- dubbo的本地存根(Stub)
dubbo的本地存根的原理是:远程服务后,客户端通常只剩下接口,而实现全在服务器端,但提供方有些时候想在客户端也执行部分逻辑,那么就在服务消费者这一端提供了一个Stub类,然后当消费者调用provid ...
- Windows PowerShell 入門(8)-関数編3
この連載では.Microsoftが提供している新しいシェル.Windows PowerShellの使い方を解説します.今回は.フィルタ.スクリプトブロック.変数のスコープについて取り上げます. はじめ ...
- redis启动异常
在官网上下载redis包,解压后启动. 启动redis报下面的错误! *** FATAL CONFIG FILE ERROR *** Reading the configuration file, a ...
- boost 实现http断点续传
// testc.cpp : Defines the entry point for the console application. // #include "stdafx.h" ...
- telnetlib 中各种 read 函数的意义
基本原理 要明白 telnetlib 中各个 read 函数的意义,首先要了解 telnetlib 的工作原理. telnetlib 首先通过 socket 连接从网络接收数据,把数据存储到自己的 r ...
- cu命令
选项: -b:仅显示行中指定直接范围的内容: -c:仅显示行中指定范围的字符: -d:指定字段的分隔符,默认的字段分隔符为“TAB”: -f:显示指定字段的内容: -n:与“-b”选项连用,不分割多字 ...