上传者: jilongliang
|
上传时间: 2021-12-16 15:22:39
|
文件大小: 43KB
|
文件类型: -
一.创建一个DataBaseHelper
DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能
1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过
2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用
A、 在SQLiteOpenHelper的子类当中,必须要有的构造函数
B、该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDataBase对象的时候onCreate
二、创建一个实体person类并且给字段和封装
三、创建一个业务类对SQL的CRUD操作
1.getWritableDatabase()和getReadableDatabase()的区别 ,两个方法都可以获取一个用于操作数据库的SQLiteDatabase实例
2.execSQL(增,删,改都是这个方法)和close();android内部有缓存可关闭也不关闭也行,查询rawQuery是方法
3.在分页有到Cursor(游标)取游标下一个值cursor.moveToNext(),用游标对象接数据 "select * from person limit ?,?"
person不能加上where 关键字
4.在删除注意:sb.deleteCharAt(sb.length() - 1);
四、AndroidCRUD业务对SQLite的CRUD操作
1.ContentValues对象的使用
2.android内部insert添加数据的方法,而且values这个不给值也必须要执行,而主键是不是null的其他字段的值是为null
3.insert update query delete
五、单元测试类要注意的
AndroidCRUDService curdService = new AndroidCRUDService(this.getContext());
/*
* 注意:getContext必须在我们使用前已经注解进去的,在使用前要实力化,而且是使用后才有上下文
*一般设置为局部对象
*/
六、AndroidManifest.xml的配置
<!-- 配置用户类库android.test.runner测试 -->
package jll.sqlitedb;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
/**
*
*@author Administrator DataBaseHelper是一个访问SQLite的助类,提供两个方面的功能
* 1.getReadableDatebase(),getWriteableDatabase()可以获取SQLiteDatabase对象,通过
* 2.提供了onCreate()和onUpdate()两个回调函数,允许我们常见和升级数据库是进行使用
*/
public class DataBaseHelper extends SQLiteOpenHelper {
// 给一个默认的SQLite的数据库名
private static final String DataBaseName = "SQLite_DB";
private static final int VERSION = 2;
// 在SQLiteOpenHelper的子类当中,必须要有的构造函数
public DataBaseHelper(Context context, String name, CursorFactory factory,
int version) {
// 必须通过super调用父类当中的构造函数
super(context, DataBaseName, factory, version);
}
public DataBaseHelper(Context context) {
super(context, DataBaseName, null, VERSION);
}
// 其实是调用四个构造的函数的方法
public DataBaseHelper(Context context, String name, int version) {
this(context, name, null, version);
}
// 该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDataBase对象的时候
@Override
public void onCreate(SQLiteDatabase db) {
System.out.println("create a DataBase");
// execSQL函数用于执行sql语句
db.execSQL("create table person(personid integer primary key autoincrement, name varchar(20),age integer,tel varchar(20))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 存在这个表的话就把它删除,
db.execSQL("DROP TABLE IF EXISTS person");
System.out.println("update a Database");
}
}