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
随机推荐
- 求两个排序数组中位数 C++
题目描述: 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . 请找出这两个有序数组的中位数.要求算法的时间复杂度为 O(log (m+n)) . 你可以假设 nums1 和 nu ...
- [转] 浅谈Trie树(字典树)
原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/6290732.html Trie树(字典树) 一.引入 字典是干啥的?查找字的. 字典树自然也是起查找 ...
- Scala 继承
1. 继承 Scala 通过 extends 关键字来继承类. 那么继承一个类有什么好处呢? 子类拥有继承自超类的方法和字段(即为val(常量), var(变量)所定义的) 可以添加自己需要的新方法和 ...
- vue 选城市三级联动
<div id="example"> <select v-model="prov"> <option v-for="op ...
- Python3学习笔记27-ConfigParser模块
ConfigParser模块在Python3修改为configparser,这个模块定义了一个ConfigeParser类,该类的作用是让配置文件生效.配置文件的格式和window的ini文件相同,大 ...
- Java 处理 XML
DOM 优缺点:实现 W3C 标准,有多种编程语言支持这种解析方式,并且这种方法本身操作上简单快捷,十分易于初学者掌握.其处理方式是将 XML 整个作为类似树结构的方式读入内存中以便操作及解析,因此支 ...
- nginx配置文件注释说明
#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...
- Go断言
用Go语言提供的类型检测方法,同时也可作为断言的解决方案: package main import ( "fmt" "reflect" ) type MyStr ...
- 6-CSS
HTML Style Tags CSS stands for Cascading Style Sheets. CSS describes how HTML elements are to be dis ...
- Day7--------------IP地址配置
ifconfig 查看网卡 ifconfig eth0 查看网卡eth0 配置网络地址: 临时配置: ifconfig eth0 192.168.10.100 netmask 255.255.255. ...