Sqlite:

1.一款用来实现本地数据存储的轻量级数据管理工具,是众多用来实现数据库管理的工具之一。

2.Android已经将SQLite的代码功能吸收在它的系统中,我们可以直接在Android程序中使用SQLite的语句来创建数据库,并实现数据库的增删查改

SQLite的简单使用方法:

如何获得一个数据库的class模板,并设定数据库里的数据结构:

自己新建一个类,继承SQLiteOpenHelper,并重写构造方法,oncreate(),onUpgrade()

自定义类的代码实现方法和构造方法的原始模板解析:

  1. public class Database extends SQLiteOpenHelper {
  2. public Database(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
  3. super(context, name, factory, version);
         //Context
         //String name "创建数据库的名字"
         //SQLiteDatabase.CursorFactory factory "在数据库中查找是的光标(相当于数组中的下标)"
         // int Version "数据库的版本信息"  
  1. }
  2.  
  3. @Override
  4. public void onCreate(SQLiteDatabase db) {
  5.       //在创建数据库的时候调用
  6. }
  7.  
  8. @Override
  9. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  10.       //每次启动数据库会检测数据库的版本信息,如果版本有变动就会执行此方法
  11. }
  12. }

用来实现数据库的自定义类的具体代码:

public class Data extends SQLiteOpenHelper

  1. public Data(Context context) {
  2.  
  3.     //简单起见,直接指定了数据库的名字为DATA,光标信息为null,版本为1
        //所以在自定义的类的构造方法中只有Context参数
        //在调用父类构造方法的时候,给定固定的参数来简化数据库创建
    super(context,"DATA", null, 1);
  4. }
  5.  
  6. @Override
  7. public void onCreate(SQLiteDatabase db) {
          //创建数据库建构内容的语句,具体解析在下文整理
  8. db.execSQL("CREATE TABLE user("+
    "_id INTEGER PRIMARY KEY AUTOINCREMENT," +
  9. "name TEXT DEFAULT \"\"," +
  10. "sex TEXT DEFAULT \"\")");
        //以上的语句给出了一个名为user的数据库结构对象,里面包含INTERGER类型的_id信息,并自增
        //TEXT数据类型的name
        //text数据类型的sex
    }
  11.  
  12. @Override
  13. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  14.       //由于给出了版本参数信息为固定的1,所以不会执行数据库更新操作
  15. }
  16. }

自己重写了数据库的模板后,如何实现数据库的使用和管理:

1.利用自定义的数据库类来新建一个数据库对象,

2.再通过新建的数据库得到可读的数据库对象和可写的数据库对象,

新建ContentValues对象向获得的可写数据库中添加内容,实现代码:

  1. Private Data data = new Data(this);
  2. private SQLiteDatabase dbWriter = db.getWritableDatabase();
  3. ContentValues cv = new ContentValues();
  4. cv.put("name",etName.getText().toString());
  5. cv.put("sex",etSex.getText().toString());
  1. //insert方法的三个参数的意义分别是:插入数据表的名称,插入数据表的位置信息,插入的对象
  1. dbWriter.insert("user",null,cv);
  1. //每次使用完数据库之后,记得关闭数据库,类似I/O的关闭 
    dbWrite.close();
  1.  
  2. 注:位置信息这里填的是null,具体运行方式尚不清楚,但看到这里的时候,有时间去研究一下

通过获得的可读数据库对象,在目标数据库中进行查找的方法实现代码:

  1. SQLiteDatabase DB = db.getReadableDatabase();
    //新建一个光标对象,指明在“user”数据表中查找,后面的参数是一系列限制条件,
    //全部为null意味输出所有user中的数据
  2. Cursor c = DB.query("user",null,null,null,null,null,null);
    //当光标仍然能够向下一行运行的时候,执行数据库的读取操作
    while (c.moveToNext()){
  3. String name=c.getString(c.getColumnIndex("name"));
  4. String sex=c.getString(c.getColumnIndex("sex"));
  5. Toast.makeText(getApplicationContext(),name+"--"+sex,Toast.LENGTH_SHORT).show();
    }

SQLite在Android程序中的使用方法,SQLite的增删查改方法的更多相关文章

  1. 在Android程序中使用已有的SQLite数据库

    已经将这篇文章迁移至 Code问答,你也能够到这里查看这篇文章,请多多关注我的新技术博客CodeWenDa.com 在中文搜索中,没有找到一篇比較好的关于怎样在Android应用中使用自己事先创建好的 ...

  2. SSH框架的多表查询(方法二)增删查改

     必须声明本文章==>http://www.cnblogs.com/zhu520/p/7773133.html  一:在前一个方法(http://www.cnblogs.com/zhu520/p ...

  3. python下sqlite增删查改方法(转)

    sqlite读写   #coding=utf-8 import sqlite3 import os #创建数据库和游标 if os.path.exists(' test.db'): conn=sqli ...

  4. 如何在Vue中使用Mockjs模拟数据的增删查改

    之前一直使用json-server在前端开发时,搭建本地数据接口测试,但有时又需要将做好的项目放于 github page上做项目演示.在本地时,json server很好使用,但一旦放在github ...

  5. 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  6. 4.在MVC中使用仓储模式进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...

  7. 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  8. 在MVC中使用泛型仓储模式和工作单元来进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  9. 在MVC中使用泛型仓储模式和依赖注入实现增删查改

    标签: 原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository ...

随机推荐

  1. 如何利用 LTE/4G 伪基站+GSM 中间人攻击攻破所有短信验证

    这次公开课请来的嘉宾对自己的简介是: 连续创业失败的创业导师:伪天使投资人:某非知名私立大学创办人兼校长:业余时间在本校通信安全实验室打杂. 自从他在黑客大会上演讲<伪基站高级利用技术——彻底攻 ...

  2. winform rar压缩包解压缩

    /// <summary>        /// 解压缩        /// </summary>        /// <param name="path& ...

  3. 一个class标签里面有多个属性时的提取标签

    <div class="uibox-con carpic-list03 border-b-solid">   #即这个标签同时满足三个class:“uibox”.“ca ...

  4. laravel 常用命令

    1.创建控制器 php artisan make:controller ArticleController // 带 restful 风格 php artisan make:controller Ar ...

  5. C#读写三菱PLC和西门子PLC数据 使用TCP/IP 协议

    本文将使用一个Github开源的组件库技术来读写三菱PLC和西门子plc数据,使用的是基于以太网的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能 ...

  6. git的优缺点

      git可以说是世界上最先进的版本控制系统,大多语句的执行为linux语句,也不难怪,,起初他就是为了帮助开发linux开发内核而使用. 我们先来说git的主要功能,知道了这个,我们也就知道了为什么 ...

  7. [CSL 的魔法][求排序最少交换次数]

    链接:https://ac.nowcoder.com/acm/contest/551/E来源:牛客网题目描述 有两个长度为 n 的序列,a0,a1,…,an−1a0,a1,…,an−1和 b0,b1, ...

  8. JS 点击复制

    一.原理分析 浏览器提供了 copy 命令 ,可以复制选中的内容 document.execCommand("copy") 如果是输入框,可以通过 select() 方法,选中输入 ...

  9. Linux tmpwatch命令详解

    Linux tmpwatch命令 Linux tmpwatch命令用于删除暂存文件. 执行tmpwatch指令可删除不必要的暂存文件,您可以设置文件超期时间,单位以小时计算 用法: tmpwatch ...

  10. eclipse 安装配置

    https://blog.csdn.net/jklinux/article/details/77861450 JAVA环境配置 https://jingyan.baidu.com/article/db ...