sqlite

来源:互联网 发布:2016最新网络歌曲dj版 编辑:程序博客网 时间:2024/04/27 10:00

一.概况

SQLite是Android内置的一个很小的关系型数据库,Google为Andriod的较大的数据处理提供了SQLite,他在数据存储、管理、维护等各方面都相当出色,功能也非常的强大,SQLite具有独立性、轻量级、隔离性、安全性、跨平台、支持多种语言的优势,SQliteOpenHelper是一个抽象类,所以必须要实现以下的两个方法以及一个构造方法 

1.构造方法: 

public ClassName(Context context, String name, CursorFactory factory, int version) 

参数1:上下文对象(MainActivity.this)、

参数2:数据库的名称、

参数3:创建Cursor的工厂类,参数为了可以自定义Cursor创建(ps:一般为null)、

参数4:数据库的版本

2.两个回调函数:

onCreate(SQLiteDatabase db)该方法是当没有数据库存在才会执行

onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)该方法是数据库存更新才会执行

3.实现代码如下:

复制代码
public class MyDatabaseOpenHelper extends SQLiteOpenHelper {    private static final String db_name = "mydata.db"; // 数据库名称    private static final int version = 1; // 数据库版本      public MyDatabaseOpenHelper(Context context) {        super(context, db_name, null, version);    }    //该方法没有数据库存在才会执行    public void onCreate(SQLiteDatabase db) {     //没有数据库打印日记        Log.i("Log","没有数据库,创建数据库");     //建表语句        String sql_message = "create table t_message (id int primary key,userName varchar(50),lastMessage varchar(50),datetime  varchar(50))";        //执行建表语句        db.execSQL(sql_message);    }    //数据库存更新才会执行    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {      Log.i("updateLog","数据库更新了!");  }}
复制代码

二.SQLiteDatabase类

1.Android提供了一个名为SQLiteDatabase的类,它封装了一些操作数据库的API,SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新,一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法

onCreate(SQLiteDatabase db)创建数据库时调用

onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion)版本更新时调用

getReadableDatabase()创建或打开一个只读数据库

getWritableDatabase()创建或打开一个读写数据库

2.调用代码如下:

复制代码
public class MainActivity extends Activity {    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        MyDatabaseOpenHelper helper = new MyDatabaseOpenHelper(MainActivity.this);        helper.getWritableDatabase().close();       }}
复制代码

3.SQLiteDatabase相关方法

getCount()总记录条数
isFirst()判断是否第一条记录
isLast()判断是否最后一条记录
moveToFirst()移动到第一条记录
moveToLast()移动到最后一条记录
move(int offset)移动[是指偏移量而不是指移到指定位置]
moveToNext()移动到吓一条记录
moveToPrevious()移动到上一条记录
getColumnIndex(String columnName)获得指定列索引的int类型值

三.测试SQL语句方法

运行以上代码后你会发现在data/data/database 目录下有个刚刚生成的mydata.db文件这就是我们的数据库文件

在我们的SDK目录下的platform-tools文件夹有个sqlite3.exe,打开我们的dos命令台运行它,输入sqlite3 数据库文件的绝对路径便可以打开该数据库进行增删查改的操作

(ps:没有SDK的,这里我提供一下百度云链接:http://pan.baidu.com/s/1o8m6hNc 密码:zom1)