首页 > 代码库 > 初识SQLite

初识SQLite

基本概念

        SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。

 

SQLiteOpenHleper(重要的数据库帮助类):

        SQLiteOpenHleper是继承于SQLiteDataBase的一个帮助类,用来管理数据库的创建和版本更新,它主要实现的两个方法是:oncreate(SQLiteDataBase db),onUpgrade(SQLiteDataBase db,INT oldVersion,int newVersion),他们分别是创建数据库和更新数据库.

 

 1 package com.example.sqliteData.OpenHelper; 2  3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteOpenHelper; 6  7 /** 8  * 数据库帮助类 9  */10 public class PersonOpenHelper extends SQLiteOpenHelper {11     /**12      * @param context13      */14     public PersonOpenHelper(Context context) {15         super(context, "person.db", null, 1);16     }17 18     /**19      * 数据库库第一次被创建的时候调用onCreate()20      *21      * @param db 被创建的数据库22      */23     @Override24     public void onCreate(SQLiteDatabase db) {25         db.execSQL("create table person(id integer primary key autoincreament,name varchar(20),number varchar(20))");26     }27 28     @Override29     public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i2) {30         //初学时一般用不到31     }32 }

 

SQLite的增删查改:SQLlite提供了操作数据库的API,我们可以通过实例化SQLiteDataBase来进行操作.(insert,query,update)
  增加数据  insert(String table, String nullColumnHack, ContentValues values)

      参数解释:

  table 表名称

  nullColumnHack 空列的默认值  一般写为null

  ContentValues 填入列名称和列值的Map。   代码演示:

    public void add(String name, String pwd) {        SQLiteDatabase db = helper.getWritableDatabase();        ContentValues cv=new ContentValues();        cv.put("username",name);        cv.put("password",pwd);        db.insert("User",null,cv);        //nullColumnHack空列的默认值        db.close();    }

 

删除数据 delete(String table, String whereClause, String[] whereArgs)

  table 表名

  whereClause 删除条件

  whereArgs 删除条件值数据组  代码演示

 

  public void delete(String name) {        SQLiteDatabase db = helper.getWritableDatabase();        String whereClause="id=?";//?表示占位符        String[] whereArgs={String.valueOf(1)};        db.delete("User",whereClause,whereArgs);        db.close();    }

 

 

 

查询数据 query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)

table 表名称

columns 列名称

selection 条件子句,相当于where

selectionArgs 条件字句的参数数组

groupBy 分组列

having 分组条件

orderby 排序类

limit 分页查询限制

补:Cursor 返回值 相当于结果集ResultSet      代码展示

 

    public List<Person> findAll() {        SQLiteDatabase db = helper.getWritableDatabase();        List<Person> persons = new ArrayList<Person>();        Cursor cursor = db.query("User", null, null, null, null, null, null, null);        while (cursor.moveToNext()) {            int id = cursor.getInt(cursor.getColumnIndex("id"));            String name = cursor.getString(cursor.getColumnIndex("name"));            String number = cursor.getString(cursor.getColumnIndex("number"));            Person p = new Person(id, name, number);            persons.add(p);        }        cursor.close();        db.close();        return persons;    }

 

 

修改数据 upgrade(String table, ContentValues values, String whereClause, String[] whereArgs)

table 表名称

ContentValues 键值对Map

 

selection 条件子句,相当于where

 

selectionArgs 条件字句的参数数组

 

        SQLiteDatabase db = helper.getWritableDatabase();        ContentValues values = new ContentValues();        values.put("password", "123456");        String whereClause = "id=?";        String[] whereArgs = {String.valueOf(1)};        db.update("User", values, whereClause, whereArgs);        db.close();