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
随机推荐
- Java的Fork/Join任务
当我们需要执行大量的小任务时,有经验的Java开发人员都会采用线程池来高效执行这些小任务.然而,有一种任务,例如,对超过1000万个元素的数组进行排序,这种任务本身可以并发执行,但如何拆解成小任务需要 ...
- C++基础题--float型以整型格式输出
int main() { ; a++; printf("%d\n", a); system("pause"); ; } //为什么会输出是0? 解释如下: 在p ...
- Python全栈(第一部分)day2
昨日内容回顾 编译型:一次性将全部代码编译成二进制文件 代表语言: C,C++ 优点:执行效率高 缺点:开发速度慢,不能跨平台 解释型:当程序运行时,从上至下一行一行的解释成二进制 优点:开发速度快, ...
- dubbo源码分析14——DubboProtocol的export方法分析
走到了这一步也挺不容易的,把之前的暴露入口代码再列出来回顾一下: //配置为none不暴露 if (! Constants.SCOPE_NONE.toString().equalsIgnoreCase ...
- http与中文编码传输
分类: http网络及RFC2012-08-12 15:01 3716人阅读 评论(0) 收藏 举报 urljavascript工具pythonimportjsp 关于http的RFC文档:http: ...
- windows命令行获取时间
在写Windows批处理脚本时,常常需要获取系统日期.时间戳记,用作文件名.文件夹名.log等等. 本文介绍了如何获取自订的系统日期.时间戳记. 首先,在Windows中,系统日期由以下参数获得: % ...
- 通过URL传递中文参数的乱码处理
环境:web.xml中配置了 <filter> <filter-name>encodingFilter</filter-name> <filter-class ...
- 如何将Tomcat添加到服务中【笔记】
tomcat中自带有添加服务的批处理,所以只需要从命令行界面进入到需要添加到服务的tomcat目录中,执行service.bat install 命令就可以自动添加默认名称的tomcat服务了. 该批 ...
- 009_关闭linux的THP
背景:公司某个大型业务系统反馈最近数据库服务器总是宕机(此处描述不准确,后面解释),最后,客户.运维人员都觉得实在是忍无可忍了,项目经理打电话找到我问是否能帮忙诊断一下,刚好第二天要去现场沟通另外一个 ...
- tcpdump抓取mysql语句
抓包工具tcpdump的使用,抓取具体的sql语句 [root@test7_chat_api_im ~]# tcpdump -s -l - |strings tcpdump: listening on ...