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);
}
});

更多相关文章

  1. EditText实现输入限制和校验功能实例代码
  2. android图片压缩的3种方法实例
  3. Android Thread 介绍与实例
  4. Android声音播放实例代码
  5. 仿UC底部菜单栏实例源码
  6. 安卓Android大量项目源码实例

随机推荐

  1. App自动更新之通知栏下载
  2. Android黑科技动态加载(二)之Android中的
  3. android 透明状态栏与沉浸式
  4. Kotlin 写 Android 单元测试(三),Mockito mo
  5. Android 学习
  6. Google Maps Android API v2初体验
  7. 深入理解 Android消息处理系统的原理
  8. [置顶] 【Android】 基于XMPP Smack框架
  9. Android Manifest标签之manifest,meta-da
  10. 【Unity3D】Unity3D与Android的交互通信(A