2.3 SQLite存储

SQLite存储
 
Android中SQLite数据库存储方式
数据库sqliteandroid存储exceptionstring
Android中的数据库存储是直接使用了SQLite。在Android应用中创建数据库后数据库文件是存储在/data/ data/应用包名/databases/下。
 
在Android中使用到SQLite会涉及到以下三个类或接口:
1.SQLiteOpenHelper是一个抽象类,所以创建实例前必须被继承。
*SQLiteOpenHelper 构造方法,一般传递一个要创建的数据库名称name参数
常用构造函数 public void SQLiteOpenHelper(context,databaseName,Cursor,version);其中Cursor时常传入参数为null;
*onCreate 创建数据库时调用,必须重写
*onUpgrade 版本更新时调用,必须重写,用于数据库升级
*getReadableDatabase 创建或打开一个只读数据库
*getWritableDatabase 创建或打开一个读写数据库
2.SQLiteDatabase
*openOrCreateDatabase 打开或者创建数据库
*insert 添加一条记录
*delete 删除一条记录
*query 查询记录
*update 更新记录
*execSQL 执行一条SQL语句
*close 关闭数据库
3.Cursor,一般在查询中常用
*getCount 总记录条数
*isFirst 判断是否第一条记录
*isLast 判断是否最后一条记录
*moveToFirst 移动到第一条记录
*moveToLast 移动到最后一条记录
*move 移动到指定记录
*moveToNext 移动到下一条记录
*moveToPrevious 移动到上一条记录
*getColumnIndexOrThrow根据列名称获得列索引
*getInt 获得指定列索引的int类型值
*getString 获得指定列索引的String类型值
注:某些方法是有重载的,可以结合docs熟悉下。
 

实例一 创建一个数据库
步骤:
1、创建一个项目 DatabaseTest项目
2、新建一个类继承自SQLiteOpenHelper;
package com.example.databasetest;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;

public class MyDatabaseHelper extends SQLiteOpenHelper {

public static final String CREATE_BOOK = "create table Book("
+ "id integer primary key autoincrement," + "author text"
+ "price real" + "pages integer" + "name text)";
private Context mContext;

public MyDatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
mContext = context;
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(CREATE_BOOK);
Toast.makeText(mContext, "created succeeded", Toast.LENGTH_LONG).show();
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub

}
}

3、修改activity_main.xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/create_database"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="create database" />
    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>

修改MainActivity.class
package com.example.databasetest;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
    private MyDatabaseHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper = new MyDatabaseHelper(this,"Bookstore.db",null,1);
Button create_database = (Button)this.findViewById(R.id.create_database);
create_database.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dbHelper.getWritableDatabase();

}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

实例二 添加数据
步骤:1、在activity_main.xml中添加一个按钮
      2、为该按钮添加点击事件
add_data.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "疯狂android讲义");
values.put("author", "lanPoyang");
values.put("price", 100);
values.put("pages", 100);
//添加数据
db.insert("Book", null, values);
}
});

你可能感兴趣的:(android,sqlite)