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
随机推荐
- Javascript - DOM文档对象模型
文档对象模型(DOM) DOM(Document Object Model,文档对象模型)是一个通过和JavaScript进行内容交互的APIJavascript和DOM一般经常作为一个整体,因为Ja ...
- python编程 之 json包
1,json是什么? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. 我的理解就是:json是一种统一的格式化的文件,比如,一个jso ...
- python基础-----函数/装饰器
函数 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 函数的优点之一是,可以将代码块与主程 ...
- Keepalived详解(四):通过vrrp_script实现对集群资源的监控【转】
一.通过vrrp_script实现对集群资源的监控: Keepalived基础HA功能时用到了vrrp_script这个模块,此模块专门用于对集群中服务资源进行监控.与此模块一起使用的还有track_ ...
- C# 操作文件类,文件夹存在判断,创建,文件内容读写。
此篇文档是老早就放到草稿箱中了,断断续续编辑了几次.结合自己经常用到的对于文件的操作,结合msdn做此文. 1.File 类 --转自msdn 常用方法: 名称 说明 AppendAllLines(S ...
- CFtpFileFind例子
#include <afx.h> #include <afxwin.h> #include <afxinet.h> #include <stdio.h> ...
- gnutls-3.5.18 static building for windows
gnutls-3.5.18 static building for windows Required libraries:1. libnettle 2. gmplib Optional librari ...
- Vue 根组件,局部,全局组件 | 组件间通信,案例组件化
一 组件 <div id="app"> <h1>{{ msg }}</h1> </div> <script src=" ...
- 虚拟机静态ip设置
1.安装之后,用ifconfig命令发现没有ip信息,如下图,发现没有ip信息(好坑). 网上找了各种资料,最后才发现实自己的网卡没有启动,虽然使用service restart network,但是 ...
- Uncaught RangeError: Maximum call stack size exceeded
环境: jquery+bootstrap+bootstrapValidator 问题描述:有个form表单,一点击按钮提交,就会报如题错误.正常应该是去校验表单输入. 解决: 从日志分析来看,报错的起 ...