Android SQLite数据库 《第一行代码》

SQLite是Android自带的数据库,为了方便管理,Android提供了一个SQLiteOpenHelper的类来帮助管理数据库。但是SQLiteOpenHelper是一个抽象类,我们使用的时候需要创建自己的一个类去继承,并且实现抽象类中的两个方法onCreate()和onUpgrade()方法,onCreate()方法在创建数据库表的时候调用,onUpgrade()方法在更新数据库表到时候调用。

一、创建数据库表

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);
        //Toast.makeText(mContext,"Create succeeded",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
        
    }
}
二、升级数据库

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," +
            "category_id integer)";
    public static final String CREATE_CATEGORY = "create table Category(" +
            "id integer primary key autoincrement," +
            "category_name text," +
            "category_code integer)";
    
    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_CATEGORY);
        //Toast.makeText(mContext,"Create succeeded",Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){
        switch (oldVersion){
            case 1:
                db.execSQL(CREATE_CATEGORY);
            case 2:
                db.execSQL("alert table Book add column category_id integer");
            default:

        }
    }
}
三、添加数据

SQLiteDatabase提供来一个insert()方法用于添加数据,需要三个参数,第一个参数:表名,第二个参数:自动赋值,一般传入null,第三个参数:ContentValues对象,保存着添加的数据,用put方法来添加数据

SQLiteDatabase db = dbHelper.getWritableDatabase();
                ContentValues values = new ContentValues();
                values.put("name","The Da Vinci Code");
                values.put("author","Dan Brown");
                values.put("pages",454);
                values.put("price",16.96);
                db.insert("Book", null, values);
                values.clear();
                values.put("name","The Lost Symbol");
                values.put("author","Dan Brown");
                values.put("pages",510);
                values.put("price",19.95);
                db.insert("Book", null, values);
四、更新数据

SQLiteDatabase提供来一个update()方法用于对数据进行更新,需要四个参数,第一个参数:表名,第二个参数:ContentValue对象,保存着要更新的数据,第三第四个数据是对表中的记录进行筛选过,第三个参数,相对应的是查询语句的where部分,第四个参数为第三个参数中的占位符提供数据

SQLiteDatabase db = dbHelper.getWritableDatabase();
                ContentValues values = new ContentValues();
                values.put("price",10.99);
                db.update("Book", values, "name = ?", new String[]{"The Da Vinci Code"});
五、删除数据

SQLiteDatabase中提供了delete方法用于删除数据,需要三个参数,第一个参数:表名,第二第三个参数作用于update()方法中第三第四个参数的作用一致。如果不指定的话表示删除所有行。

SQLiteDatabase db = dbHelper.getWritableDatabase();
                db.delete("Book", "pages > ?", new String[]{"500"});
六、查询数据

SQLiteDatabase中提供来query()方法用于查询数据。


SQLiteDatabase db = dbHelper.getWritableDatabase();
                Cursor cursor = db.query("Book",null,null,null,null,null,null);
                if(cursor.moveToFirst()){
                    do{
                        String name = cursor.getString(cursor.getColumnIndex("name"));
                        String author = cursor.getString(cursor.getColumnIndex("author"));
                        int pages = cursor.getInt(cursor.getColumnIndex("pages"));
                        double price = cursor.getDouble(cursor.getColumnIndex("price"));
                        Log.d("SQLiteActivity","book name is " + name);
                        Log.d("SQLiteActivity","book author is " + author);
                        Log.d("SQLiteActivity","book pages is " + pages);
                        Log.d("SQLiteActivity","book price is " + price);
                    }while(cursor.moveToNext());
                }
                cursor.close();

以上操作也可以直接使用sql语句完成。

七、事务

为了保证数据库的同步,需要使用事务来提交地数据库的操作。

SQLiteDatabase db = dbHelper.getWritableDatabase();
                db.beginTransaction();
                try{
                    做一些事情
                    db.setTransactionSuccessful();
                }catch (Exception e){
                    e.printStackTrace();
                }finally {
                    db.endTransaction();
                }





  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android SQLite数据库可以通过以下几种方式进行查看: 1. 使用Android Studio自带的Database Inspector工具,可以直接查看应用程序中的SQLite数据库。在Android Studio中,选择View -> Tool Windows -> Database Inspector,然后选择要查看的设备和应用程序即可。 2. 使用第三方SQLite数据库管理工具,例如SQLite Expert Personal、SQLite Manager等。这些工具可以直接连接到设备上的SQLite数据库,并提供了更多的功能,例如导入/导出数据、执行SQL语句等。 3. 在应用程序中使用SQLiteOpenHelper类提供的getReadableDatabase()或getWritableDatabase()方法获取SQLite数据库的实例,然后使用SQLiteDatabase类提供的查询方法进行查询。例如: ``` SQLiteOpenHelper dbHelper = new MyDatabaseHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query("table_name", null, null, null, null, null, null); if (cursor.moveToFirst()) { do { // 处理查询结果 } while (cursor.moveToNext()); } cursor.close(); ``` 以上是三种常见的Android SQLite数据库查看方式,具体选择哪种方式取决于具体的需求和情况。 ### 回答2: Android SQLite 数据库Android应用程序中最常用的数据库,主要用于数据存储和管理。在应用开发的过程中,开发人员需要不断的查看和管理这些数据,以便及时修改和优化应用程序。Android提供了多种方式来查看和管理SQLite数据库。 1. Android Studio 在Android Studio中,可以通过打开“Device File Explorer”,找到正在使用应用程序的设备,进入应用程序的“data/data/com.package.name/database”目录,即可找到应用程序的数据库,并进行查看和管理。 2. ADB命令 ADB命令可以直接访问系统数据库,并在命令行界面对SQLite数据库进行操作。如: adb shell sqlite3 /data/data/com.package.name/databases/database_name.db 3. 第三方工具 Android平台上还有一些非常出色的第三方数据库管理工具,如SQLite Database Browser等,这些工具提供了更多的功能和选项,能够更加灵活和便捷地操作SQLite数据库。 总的来说,Android SQLite数据库的查看和管理涉及到多个方面,需要开发人员熟练掌握相关知识和技术,才能够更好地实现应用程序的开发和维护。 ### 回答3: 首先,Android SQLite数据库是一个轻量级的关系型数据库,用于存储应用程序的数据。通过SQLiteOpenHelper类创建和管理数据库Android Studio提供了两个工具来查看和管理SQLite数据库,分别是Device File Explorer和SQLite Explorer插件。 Device File Explorer 设备文件浏览器可以在Android模拟器或实际物理设备上查看应用程序数据,包括SQLite数据库文件。要使用设备文件浏览器,打开Android Studio并连接模拟器或物理设备。然后,选择菜单栏中的"View"-> "Tool Windows"-> "Device File Explorer"来打开设备文件浏览器。 在"Device File Explorer"窗口中,可以找到应用程序的包名并展开它,然后找到该应用程序的数据库文件,通常是以".db"或".sqlite"为扩展名。单击数据库文件,即可在右侧窗格中查看和下载数据库文件。 SQLite Explorer插件 SQLite Explorer是一款用于管理SQLite数据库Android Studio插件。要使用它,打开Android Studio并选择菜单栏中的"File"-> "Settings"-> "Plugins"。在搜索栏中搜索SQLite Explorer,然后安装它并重新启动Android Studio。 安装成功后,可以在Android Studio右侧边栏中找到SQLite Explorer图标。单击该图标,即可打开插件并浏览SQLite数据库。在"Data Sources"选项卡中,可以添加数据库文件并对其进行操作,如查看表、索引和触发器,或者执行查询语句和更改数据。 总体而言,通过设备文件浏览器或SQLite Explorer插件,可以很容易地查看和管理Android SQLite数据库。对于开发人员和测试人员来说,这些工具非常有用,可以快速查找和修复数据库问题和错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值