Android 入门宝典 - Sqlite 数据库

本文详细介绍了Android中SQLite数据库的使用,包括INT PRIMARY KEY和INTEGER PRIMARY KEY的区别,SQLiteOpenHelper的使用,如何创建和操作数据库,以及 LitePal ORM 框架的介绍和优势,如简化SQL操作、自动维护表格等。
摘要由CSDN通过智能技术生成

Difference between INT PRIMARY KEY and INTEGER PRIMARY KEY SQLite

Difference between INT PRIMARY KEY and INTEGER PRIMARY KEY SQLite

android.database.sqlite

包含 APP 用来管理自己的私有数据库的 SQLite 数据库管理类。

SQLite 的版本取决于 Android 的版本。见此表

创建数据库类

  • 必须重写 onCreate 和 onUpgrade 方法。
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
   
    private static final String CREATE_BOOK = "create table Book (" +
            "id integer primary key autoincrement, " +
            "image integer, " +
            "content text, " +
            "title text, " +
            "category text)";
    private Context context;

    public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
   
        super(context, name, factory, version);
        this.context = context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
   
        db.execSQL(CREATE_BOOK);	// 创建新表
        Toast.makeText(context, "Table Book Create succeeded", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   
        // 删除重建新表
        db.execSQL("drop table if exists Book");
        onCreate(db);
    }
}

当应用使用 SQLiteOpenHelper 实例通过 getWritableDatabase 调用 onCreate 创建新表后,如果又修改了旧表或添加了新表,重启应用并不会再次调用 onCreate 重新创建。这时除了卸载应用重装【手动滑稽】,只要提高数据库版本(即 SQLiteOpenHelper 实例的 version),即可通过 onUpgrade 进行更新。不过在此之前需要把旧表删除,不然直接报错。

查看创建情况(adb)

进入目录,输入 sqlite3 XXX.db 命令,再输入 .table 可以看到新表,输入 .schema 查看建表语句,输入 .quit 或 .exit 退出 sqlite 数据库的编辑

创建数据库操作类

查询(findAllBooksByCategory)和插入(saveBook):

public class SqlOperation {
   
    private static MySQLiteOpenHelper mySQLiteOpenHelper;

    // 获取数据库
    public static void getDB(Context context,int version) {
   
        mySQLiteOpenHelper = new MySQLiteOpenHelper(context, "BooksList.db", null, version);
        mySQLiteOpenHelper.getWritableDatabase();
    }

    // 存入数据库
    public static void saveBook(Book book) {
   
        ContentValues contentValues = new ContentValues();
        contentValues.put("content", book.getBook_content());
       
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值