SQLite是Android中的轻量级的数据库,其基本操作有增、删、查、改。每一种操作都有两个方法,一种是通过SQL语句来执行,一种是用Android提供的方法。

一、创建数据库(数据库只创建一次)

 1 public class DBHelper extends SQLiteOpenHelper { 2  3     private static final String DB_NAME = "Test.db";// 数据库名称 4     private static final String TBL_NAME_TEST = "TestTabName"; // 表名称 5     // 创建数据库的SQL语句 6     private static final String CREATE_TBL_TEST = "create table TestTabName(_id integer primary key autoincrement,TestNum text,TestName text)"; 7     private SQLiteDatabase db; 8  9     /**10      * 构造函数11      * 12      * @param context13      *            上下文14      * @param name15      *            数据库名称16      * @param factory17      * @param version18      *            版本号19      */20     public DBHelper(Context context) {21         super(context, DB_NAME, null, 2);22         // TODO Auto-generated constructor stub23     }24 25     // 创建数据库26     @Override27     public void onCreate(SQLiteDatabase db) {28         // TODO Auto-generated method stub29         this.db = db;30         // 创建表31         db.execSQL(TBL_NAME_TEST);32 33     }34 35     // 数据库更新36     @Override37     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {38         // TODO Auto-generated method stub39 40     }

二、数据库的操作

1>增(也就是向指定的数据库中插入一条数据)

 1 /** 2      * 向指定数据库中插入一条数据 3      *  4      * @param values 5      *            ContentValues 键值对, 相当于map 6      * @param tableName 7      *            表名称 8      */ 9     public void insert(ContentValues values, String tableName) {10 11         SQLiteDatabase db = getWritableDatabase();12         db.insert(tableName, null, values);13         db.close();14 15     }

2>删(可以删除表中所有数据,也可以指定满足条件的数据)

 1 /** 2      * 根据ID删除一条数据 3      *  4      * @param id 5      * @param tableName 6      */ 7     public void del(int id, String tableName) { 8  9         if (db == null)10             db = getWritableDatabase();11         db.delete(tableName, "_id=?", new String[] { String.valueOf(id) });12 13     }14 15     /**16      * 删除表中所有数据17      * 18      * @param tableName19      */20     public void delAll(String tableName) {21 22         if (db == null)23             db = getWritableDatabase();24         String sql = "Delete from " + tableName;25         try {26             db.execSQL(sql);27         } catch (Exception e) {28             // TODO: handle exception29             System.out.print(e);30         }31 32     }

3>改(更新一条指定的数据)

 1 /** 2      * 更新一条数据 3      *  4      * @param values 5      *            要更新的数据 6      * @param id 7      *            更新的条件 8      * @param tableName 9      *            更新的表名称10      * @return11      */12     public boolean updataData(ContentValues values, int id, String tableName) {13         boolean bool = false;14         SQLiteDatabase db = getWritableDatabase();15         bool = db.update(tableName, values, "_id=" + id, null) > 0;16         return bool;17 18     }

4>查(查询数据,返回的是游标类型的数据,对它进行读取,打开一个游标,当结束后要关闭游标)

 1 /** 2      * 返回表中所有数据 3      *  4      * @param tableName 5      *            表名称 6      * @return 7      */ 8     public List<String> quertAll(String tableName) { 9         List<String> list = new ArrayList<String>();10         Cursor c = null;11         SQLiteDatabase db = getWritableDatabase();12         c = db.query(tableName, null, null, null, null, null, null);13         // 提取游标中的值14         try {15             for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {16                 // 根据列名获取数据17                 String TestNum = c.getString(c.getColumnIndex("TestNum"));18                 list.add(TestNum);19             }20         } catch (Exception e) {21             // TODO: handle exception22         } finally {23             //关闭游标24             c.close();25         }26 27         return list;28     }

根据条件获取表中的值

 1 /** 2      * 根据条件查询数据 3      *  4      * @param where 5      *            条件 6      * @param tableName 7      *            表名称 8      * @return   这边我就不获取游标中的值了,同上。 9      */10     public Cursor quertToWhere(String where, String tableName) {11 12         Cursor c = null;13         SQLiteDatabase db = getWritableDatabase();14         try {15             c = db.query(tableName, null, where, null, null, null, null);16         } catch (Exception e) {17             // TODO: handle exception18             String msg = e.toString();19             Log.i("", msg);20         }21         return c;22     }

由于我也是个菜鸟,都是比较基础的知识,希望能帮助和我一样菜的同孩们。。。

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. Android(安卓)Sqlite的使用
  4. Android(安卓)数据操作之SQLiteDatabase
  5. Android传感器
  6. Android(安卓)官方架构组件(二)——LiveData
  7. 获取PCM音频数据的声音分贝值
  8. SharePreferences实现
  9. 我见过的最好的DataBinding解析

随机推荐

  1. php中Date函数和时间戳函数及它们之间格
  2. 集结php常用前端语法
  3. register_shutdown_function函数在php中
  4. 异步执行PHP任务fsockopen的干货
  5. 包含文件include和require在php中的区别(
  6. PHP后端语言与前端JS语法的区别详解
  7. 使用PHPMailer在ThinkPHP5中发送电子邮件
  8. 构造函数在php中的使用方法(附示例)
  9. 使用 PHPStan 强化PHP代码质量
  10. php中函数参数传递的3种方式和区别(附详解