Android数据存储和访问之SQLite存储

上一篇已经讲到如何使用adb查询表结构的建立 接下来就介绍实现的几中操作

SQLite数据库简介

ACID;数据库事物正确执行的4个基本要素:

1:原子性2:一致性3:隔离性4:持久性

数据的常用操作主要有以下:

1、创建数据库:

2、添加数据库

 public  void addData(View view){
        SQLiteDatabase sqLiteDatabase=dbHelper.getWritableDatabase();
        ContentValues contentValues=new ContentValues();//封装数据
       //开始组装第一条数据
        contentValues.put("name","Java");
        contentValues.put("author","孙卫琴");
        contentValues.put("pages","500");
        contentValues.put("price","56.5");
        sqLiteDatabase.insert("book","name",contentValues);
        //insert  into book(name) values(null);
        contentValues.put("name","c++");
        contentValues.put("author","Dan");
        contentValues.put("pages","400");
        contentValues.put("price","56");
        sqLiteDatabase.insert("book","name",contentValues);
    }

3、删除数据

public  void deleteData(View view){
        SQLiteDatabase sqLiteDatabase=dbHelper.getWritableDatabase();
        sqLiteDatabase.delete("book","pages<?",new String[]{"500"});
    }


4、更新数据

public  void queryData(View view){
    StringBuilder stringBuilder=new StringBuilder();
    SQLiteDatabase sqLiteDatabase=dbHelper.getWritableDatabase();
    Cursor cursor=sqLiteDatabase.query("Book",null,null,null,null,null,null);
    if(cursor.moveToFirst()){
        do{
            String name=cursor.getString(cursor.getColumnIndex("name"));
            String author=cursor.getString(cursor.getColumnIndex("author"));
            int pages=cursor.getInt(cursor.getColumnIndex("pages"));
            double  price=cursor.getDouble(cursor.getColumnIndex("price"));

            stringBuilder.append(name+"-"+author+"-"+pages+"-"+price+"\n");

        }while(cursor.moveToNext());
    }

在DBhelper类中

package cn.edu.bzu.sqlapplication.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast;
public class DBHelper extends SQLiteOpenHelper{//vesion 数据库名称
    private  Context context;
    public  static  final String DB_NAME="BookStore.db";
    public  static  final String CREATE_BOOK="create table book(id integer primary key autoincrement,author text,price real,pages integer,name text)";
    public  static  final String CREATE_CATEGORY="create table category(id integer primary key autoincrement,name text, code integer)";
    public DBHelper(Context context,int version) {
        super(context,DB_NAME,null, version);
        Log.d("DBHelper","constructor");
        this.context=context;

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        Log.d("DBHelper","onCreate");
       db.execSQL(CREATE_BOOK);
        db.execSQL(CREATE_CATEGORY);
        Toast.makeText(context,"create succeeded",Toast.LENGTH_LONG).show();
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
           db.execSQL("drop table if exists book");
        db.execSQL("drop table if exists category");
        onCreate(db);
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值