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用法的更多相关文章

  1. Android sqlite管理数据库基本用法

    Android操作系统中内置了sqlite数据库(有关sqlite数据库详细介绍见:http://zh.wikipedia.org/wiki/SQLite),而sqllite本身是一个很小型的数据库, ...

  2. Android SQLite 通配符查询找不到参数问题

    使用Android SQLite中SQLiteDatabase类的query方法查询时,如果where中包含通配符,则参数会无法设置,如类似下面的方法查询时 SQLiteDatabase db = d ...

  3. Android Meun 用法

    Android Meun 用法 点击菜单实体键弹出菜单:如下图 main_activity.xml <?xml version="1.0" encoding="ut ...

  4. Android ViewPager 用法

    Android ViewPager 用法 场景:一般第一次打开应用程序时,程序会有一个提示页来给展现应用程序都有哪些功能:或者程序更新时,又更新哪些新特性,都可以使用ViewPager Demo 描述 ...

  5. Android+Sqlite 实现古诗阅读应用(三)

    往期传送门: Android+Sqlite 实现古诗阅读应用(一) Android+Sqlite 实现古诗阅读应用(二) 加入截图分享的功能. 很多应用都有分享的功能,我也想在我的古诗App里加入这个 ...

  6. Android+Sqlite 实现古诗阅读应用(二)

    传送门:Android+Sqlite 实现古诗阅读应用(一) Hi,又回来了,最近接到很多热情洋溢的小伙伴们的来信,吼开心哈,我会继续努力的=-=! 上回的东西我们做到了有个textview能随机选择 ...

  7. Android Sqlite 数据库版本更新

      Android Sqlite 数据库版本更新 http://87426628.blog.163.com/blog/static/6069361820131069485844/ 1.自己写一个类继承 ...

  8. Android SQLite总结(一) (转)

    Android SQLite总结(一)  郑海波 2012-08-21 转载请声明:http://blog.csdn.net/nuptboyzhb/article/details/7891887 前言 ...

  9. android SQLite使用SQLiteOpenHelper类对数据库进行操作

    android SQLite使用SQLiteOpenHelper类对数据库进行操作 原文: http://byandby.iteye.com/blog/835580

随机推荐

  1. ESD总结

    设计人员完全可以让系统在经过ESD事件后不发生故障并仍能继续运行.将这个目标谨记在心,下面让我们更好地理解ESD冲击时到底发生了什么,然后介绍如何设计正确的系统架构来应对ESD. 简单模型 将一个电容 ...

  2. Linux动态调频系统CPUFreq之一:概述【转】

    转自:https://blog.csdn.net/zhangyongfeiyong/article/details/53506362 随着技术的发展,我们对CPU的处理能力提出了越来越高的需求,芯片厂 ...

  3. python父类调用子类了解一下

    class B(): def __init__(self): pass def start(self): print(self.parse()) class A(B): def __init__(se ...

  4. LabVIEW与Arduino的连接

    labVIEW和Arduino的连接有两种方法: 第一种方法是用Arduino的IDE去打开位于labVIEW文件目录下面的(C:\Program Files (x86)\National Instr ...

  5. 让NotePad++添加到右键快捷方式

    添加后的效果图: 操作方式: 第一步:在桌面上新建一个txt文本文档,然后将写入如下内容 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT ...

  6. js -- sort() 使用排序函数

    JavaScript sort() 方法 JavaScript Array 对象 定义和用法 sort() 方法用于对数组的元素进行排序. 语法 arrayObject.sort(sortby) 参数 ...

  7. Laravel 5.2数据库--填充数据

    1.简介 Laravel 包含了一个简单方法来填充数据库——使用填充类和测试数据.所有的填充类都位于database/seeds目录.填充类的类名完全由你自定义,但最好还是遵循一定的规则,比如可读性, ...

  8. 【原创】大数据基础之Hive(3)最简绿色部署

    hadoop部署参考:https://www.cnblogs.com/barneywill/p/10428098.html 1 拷贝到所有服务器上并解压 # ansible all-servers - ...

  9. Maven多模块项目加载

      Maven多模块项目中如何让Spring运行时成功加载指定的子模块   将子模块pom加入到父模块pom的定义中,并继承父模块   在web.xml中配置加载子模块的Spring配置文件   在启 ...

  10. 23)django-缓存

    一:目录 1)简介 2)django缓存方式 3)django应用方式 二:简介 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显, 最简单解决方 ...