码迷,mamicode.com
首页 > 数据库 > 详细

初识SQLite

时间:2014-07-22 00:33:36      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   color   使用   os   

基本概念

        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 context
13      */
14     public PersonOpenHelper(Context context) {
15         super(context, "person.db", null, 1);
16     }
17 
18     /**
19      * 数据库库第一次被创建的时候调用onCreate()
20      *
21      * @param db 被创建的数据库
22      */
23     @Override
24     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     @Override
29     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();

初识SQLite,布布扣,bubuko.com

初识SQLite

标签:android   style   blog   color   使用   os   

原文地址:http://www.cnblogs.com/qius/p/3857935.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!