1.sqlLiteOpenHelper 抽象类 需要创建一个自己的帮助类取继承它
2.sqlLiteOpenHelper 有2个抽象方法,onCreate 和 onUpgrade 分别实现创建和升级 数据库
3.sqlLiteOpenHelper 2个实例方法 , getReadableDatabase 和getWritableDatabase 创建或者打开一个数据库(数据库存在则打开,不存在则创建)
返回可对数据库进行读写的对象;
4.sqlLiteOPenHelper 中2个构造方法可重写,采用4个参数的
第一个参数:Context
第二:数据库名
第三:查询数据时候返回一个自定义Cursor,一般传null
第四:数据库版本号
2.sqlLiteOpenHelper 有2个抽象方法,onCreate 和 onUpgrade 分别实现创建和升级 数据库
3.sqlLiteOpenHelper 2个实例方法 , getReadableDatabase 和getWritableDatabase 创建或者打开一个数据库(数据库存在则打开,不存在则创建)
返回可对数据库进行读写的对象;
4.sqlLiteOPenHelper 中2个构造方法可重写,采用4个参数的
第一个参数:Context
第二:数据库名
第三:查询数据时候返回一个自定义Cursor,一般传null
第四:数据库版本号
onCreate 用于处理一些创建表的 操作
5.创建数据库
创建MyDatabaseHelper 类继承SQLiteOpenHelper
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, SQLiteDatabase.CursorFactory factory, int version)
{
super(context, name, factory, version);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL(CREATE_BOOK);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
}
}
public class MainActivity extends AppCompatActivity
{
private MyDatabaseHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建数据库
dbHelper = new MyDatabaseHelper(this,"tableName.db",null,1);
dbHelper.getWritableDatabase();
}
}
6.升级数据
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)";
// 多加一张表
public static final String CREATE_PERSON = "create table person( "
+ "id integer primary key autoincrement,"
+ "name text,"
+ "age integer,"
+ "sex text)";
private Context mContext;
public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
{
super(context, name, factory, version);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL(CREATE_BOOK);
db.execSQL(CREATE_PERSON);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
// 先调用 如果发现数据库中存在book 和person表,则先删除2张表后再调用onCreate方法重新创建2表
db.execSQL("drop table if exists Book");
db.execSQL("drop table if exists Person");
onCreate(db);
}
}
public class MainActivity extends AppCompatActivity
{
private MyDatabaseHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 升级数据库
dbHelper = new MyDatabaseHelper(this,"tableName.db",null,2);
dbHelper.getWritableDatabase();
}
}
7.insert 数据
先获取SQLiteDataBase对象
再使用ContentValues 对数据进行封装
// insert数据
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values =new ContentValues();
// 添加数据
values.put("name","haha");
values.put("age",12);
db.insert("表名",null,values);
8.update数据
// update数据
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values =new ContentValues();
// 添加数据
values.put("name","haha");
db.update("表名",values,"id = ?",new String[]{"1"});
9.delete数据
// delete数据
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 删除数据
db.delete("表名","id = ?",new String[] {"1"});
10.select
// 查询数据
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 表名,指定查询的咧名,where的约束条件,为where站位符提供值,指定group by的咧,对结果进一步约束,指定查询结果的排序
Cursor cursor = db.query("表名", null, null, null, null, null, null);
// 便利Cursor 取出数据
if (cursor.moveToFirst()) {
do {
String name = cursor.getString(cursor.getColumnIndex("name"));
} while (cursor.moveToNext());
}
11. 使用sql语句操作数据库
// 查询数据
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 使用sql操作数据库
db.execSQL("sql语句");
// 只有select的时候使用rawQuery
db.rawQuery("select * from Book",null);