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. ubuntu安装和分区方案

    方案引用 Swap(相当于电脑内存):逻辑分区.大小设置为电脑内存大小,2G,4G: /boot(引导分区):主分区:大小设置为480M: /home(用户存储数据用):逻辑分区,要尽可能大,100G ...

  2. tomcat线程一直处于RUNNABLE,不接受请求

    最近项目中一个模块出现一个问题,本人做的比较浅显,所以很简单的问题一直搞了好几天,通过各种查资料.工具终于分析除了问题.问题如下: 现在对tomcat一个工程(会通过httpurlconnection ...

  3. Linux今日疑问

    问题一:who -r没有反应 ========== 首先我查询了运行等级的含义. 0: 关机 1: 单用户 2: 无网络的多用户 3: 命令行模式 4: 未用 5: GUI(图形桌面 模式) 6 : ...

  4. Nginx 测试环境配置,留作笔记使用

    Nginx 测试环境配置,留做笔记 以下全是配置文件的配置,如果有疑问还请移步Nginx官网参考官方文档. 环境: [root@CentOS6-M01 conf]# cat /etc/redhat-r ...

  5. MongoDB 的 upsert

    MongoDB 的update 方法的三个参数是upsert,这个参数是个布尔类型,默认是false.当它为true的时候,update方法会首先查找与第一个参数匹配的记录,在用第二个参数更新之,如果 ...

  6. PHP操作redis详细讲解(转)

    PHP中redis的使用   redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和z ...

  7. 一道并查集的(坑)题:关闭农场closing the farm

    题目描述 in English: Farmer John and his cows are planning to leave town for a long vacation, and so FJ ...

  8. OpenStack实践系列⑧可视化服务Horizon之Dashboard演示

    OpenStack实践系列⑧可视化服务Horizon之Dashboard演示 七.可视化服务Horizon之Dashboard演示 仪表板依赖于功能核心服务,包括身份,图像服务,计算和网络两种(neu ...

  9. ER/数据库建模工具之MySQL Workbench的使用

    参考:https://blog.csdn.net/soulandswear/article/details/60966808 待后续整理...

  10. Day8--------------ssh服务

    ---恢复内容开始--- 远程管理 ssh服务端 oppenssh-server ssh客户端 oppenssh-clients Xshell 开启服务端 service sshd status 点击 ...