zoukankan      html  css  js  c++  java
  • 初识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 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();
  • 相关阅读:
    运算
    使用mysql出现错误:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '??????' in 'field list'
    POI-HSSF and POI-XSSF
    java pio项目使用
    mysql安装及卸载
    pdf转word
    【android studio】android studio使用过程中,搜集的一些问题
    github提交失败并报错java.io.IOException: Authentication failed:
    收集的github的东西
    Material Design
  • 原文地址:https://www.cnblogs.com/qius/p/3857935.html
Copyright © 2011-2022 走看看