日期:2014-05-16 浏览次数:20478 次
我是我关于android
数据
库操作的总结笔记,现在共享给大家
android.database.sqlite.SQLite
OpenHelperpublic? ?? ? SQLiteOpenHelper(Context
context, String
name, SQLiteDatabase.CursorFactory
factory, int version)??Create a helper object to create, open, and/or
manage a database. The database is not actually created or opened until
one of getWritableDatabase()
or getReadableDatabase()
is called.
Parameters??
context | to use to open or create the database |
name | of the database file, or null for an in-memory database |
factory | to use for creating cursor objects, or null for the default |
version | number of the database (starting at 1); if the database is older, onUpgrade(SQLiteDatabase, int, int) will be used to upgrade the database |
A helper class to manage database creation and version management.
You create a subclass implementing onCreate(SQLiteDatabase)
, onUpgrade(SQLiteDatabase, int, int)
and optionally onOpen(SQLiteDatabase)
,
and this class takes care of opening the database if it exists,
creating it if it does not, and upgrading it as necessary. Transactions
are used to make sure the database is always in a sensible state
? ?? ???private static final String DB_NAME = "CartDB.db";
? ?? ???private static final int DB_VERSION = 2;
? ?? ???private static final String TABLE_NAME_1 = "MyOrder";
? ?? ???private static final String TABLE_NAME_2 = "OrderLine";
private static class DatabaseHelper extends SQLiteOpenHelper {
? ?? ???DatabaseHelper(Context context) {
? ?? ???super(context, DB_NAME, null, DB_VERSION);
? ?? ???}
? ?? ???@Override
? ?? ???public void onCreate(SQLiteDatabase db) {
? ?? ???db.execSQL("CREATE TABLE " + TABLE_NAME_1 + " (" + "order_no"
? ?? ???+ " text not null, " + "type" + " text not null, " + "desc"
? ?? ???+ " text" + ");");
? ?? ???db.execSQL("CREATE TABLE " + TABLE_NAME_2 + " (" + "order_no"
? ?? ???+ " text not null, " + "item_no" + " text not null, "
? ?? ???+ "QTY" + " text" + ");");
? ?? ???}
? ?? ???@Override
? ?? ???public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
? ?? ???}
? ?? ???}
? ?1.首先得新建数据库的代理类,通过这个类得到具体数据库的代理类。
mOpenHelper = new DatabaseHelper(this);
这个DatabaseHelper是继承SQLiteOpenHelper
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
2.由于操作的是SQLiteDatabase数据,故得到一个SQLiteDatabase类,这个类里边的方法可以对数据库进行具体的操作。
建立数据库:
mOpenHelper = new DatabaseHelper(v.getContext());
? ?? ???SQLiteDatabase db = mOpenHelper.getWritableDatabase();
? ?? ???String sql = "create table Student(" + "stud_no text not null, "
? ?? ???+ "stud_name text );";
? ?? ???try {
? ?? ???db.execSQL(sql);
? ?? ???setTitle("create table ok!");
? ?? ???} catch (SQLException e) {
? ?? ???Log.e("ERROR", e.toString());
? ?? ???setTitle("create table Error!");
? ?? ???}
drop数据库:
? ?? ???mOpenHelper = new DatabaseHelper(v.getContext());
? ?? ???SQLiteDatabase db = mOpenHelper.getWritableDatabase();
? ?? ???String sql = "drop table Student";
? ?? ???try {
? ?? ???db.execSQL(sql);
? ?? ???setTitle("drop table ok!");
? ?? ???} catch (SQLException e) {
? ?? ???Log.e("ERROR", e.toString());
? ?? ???setTitle("drop table Error!");