一.概况
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的,这里我提供一下百度云链接:百度网盘-链接不存在 密码:zom1)