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. python第六天函数,定义、调用、不带参函数、带参函数等

    在python定义函数需要用到的关键字是 def  xxxx():,这个关键字就是 defined 的缩写.具体看实例: >>> def hello(): print("你 ...

  2. NOIP2018D1T1 铺设道路

    原题:NOIP2013D1T1 积木大赛 题目地址:P5019 铺设道路 思路:玄学瞎搞 将每块区域插入一个小根堆,这里的小根堆用优先队列实现,即运用一个 \(pair\) , \(first\) 为 ...

  3. Thymeleaf模板布局

    ⒈定义片段 1.使用th:fragment <div th:fragment="copy"> © 2019 <a href="http://www.co ...

  4. 华为QUIDWAY系列路由器的单臂路由配置案例

    作者:邓聪聪 单臂路由 单臂路由(router-on-a-stick)是指在路由器的一个接口上通过配置子接口(或“逻辑接口”,并不存在真正物理接口)的方式,实现原来相互隔离的不同VLAN(虚拟局域网) ...

  5. BCG界面库

    之前用过BCG界面库中的表格控件,深感其强大,现在再来用一下其它的. 一.   关于BCGControlBar. BCGControlBar是一个基于MFC的扩展库,您可以通过完全的用户化操作构成一些 ...

  6. 用户 'IIS APPPOOL\xxxx' 登录失败

    一.现象发布到iis后,网站出现以下提示异常详细信息: System.Data.SqlClient.SqlException: 用户 'IIS APPPOOL\IdealTest' 登录失败. 二.分 ...

  7. VS2013中编译openssl的步骤和使用设置

    一.VS2013中编译openssl的步骤 版本号:openssl-1.0.1e 1.下载 OpenSSL http://www.openssl.org/,并解压到d:\openssl-1.0.1e目 ...

  8. OpenSIPS 1.11.1安装记录

    说明:操作系统Centos 6.5  64位 安装步骤: 1.安装依赖包 : yum -y install gcc make gdb wget yum -y install flex bison nc ...

  9. Kafka中文官方文档

    参见链接:http://orchome.com/kafka/index

  10. 阿里云服务器ubuntu 配置

    由于阿里云的导入自定义 ubuntu 镜像需要开通 OSS 快照是收费的(看着感觉不贵,但是也很麻烦),而且自己已配置好的镜像想导入需要转换格式,还存在不能使用的情况,所以麻烦点直接在阿里云原来的ub ...