一直以为安卓数据库的创建就是使用SQLiteOpenHelper创建,但是最近在android的一本书上看到了Context也可以创建数据库,下面我们一起分析这两种方式创建数据库的方式和区别,重点在SQLiteOpenHelper
一:SQLiteOpenHelper创建数据库:
1,SQLiteOpenHelper是一个抽象类,使用SQLiteOpenHelper创建数据库需要使用类来继承这个抽象的方法,SQLiteOpenHelper用来创建,打开,升级数据库的最佳方式,SQLiteOpenHelper不会在程序启动时就直接创建数据库 而是当需要需要操作是先检查数据库是否存在 如果不存在就会执行SQLiteOpenHelper的onCreate()方法
2,SQLiteOpenHelper会在打开数据库实例后来缓存数据库对象,以便使用数据库时更加方便,而不是在应用程序中环讯打开
3,在进行数据库的写入数据时,需要判断是否有权限,磁盘是否还能进行写的操作,getWritableDatabase();获得数据库的操作对象
创建数据数据库的表和结果
package com.sqlite.DB; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; /** * * @author Administrator Sqlite的简单使用 * * SQLite是android中内嵌的,不需要自己安装 * * SQLite的使用,创建数据库的类继承SQLiteOpenHelper类 ,重写三个方法 OnCreate();创建数据库 * OnUpgrading();跟新数据库 * * */ public class DBAdapter extends SQLiteOpenHelper { // static final String KEY_ROWID = "_id"; // static final String KEY_NAME = "name"; // static final String KEY_EMAIL = "email"; // static final String TAG = "DBAdapter"; // static final String DATABASE_NAME = "MyDB"; // static final String DATABASE_TABLE = "contacts"; // static final int DATABASE_VERSION = 1; // static final String DATABASE_CERATE = // "create table contacts(_id integer primary key autoincrement," // + "name text not null,email text not null);"; // 数据库类的构造构造构造方法 public DBAdapter(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override // 创建表 public void onCreate(SQLiteDatabase db) { //创建表 String sql = "create table contacts('_id integer primary key autoincrement,name text not null,callphone integernoy null')"; db.execSQL(sql); } @Override // 数据库的版本改变时,触发该方法 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
创建数据库并操作数据库
package com.sqlite.DB; import android.app.Activity; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.provider.Contacts.Intents.Insert; //操作操作数据库的类 public class DemoDB extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //创建SQLiteOpenHelper对象需要重写四个参数 //参数一:上下文 //参数二:数据库的创建的数据库名字 //参数三:游标工厂表示使用系统的默认游标 一般为null //参数四:版本号 //创建数据库 DBAdapter db = new DBAdapter(this, "main_user.db", null, 1); //判断数据库是否可写,不可写提示,获得数据库的操作对象 SQLiteDatabase database=db.getWritableDatabase(); if(database==null){ //获得写的操作 database=db.getReadableDatabase(); } //插入数据 String sql="insert into contacts(null,'张丹枫',13409909089)"; database.execSQL(sql);//执行sql语句 database.close();//数据库的使用完后必须关闭 } }
二;使用Context创建数据库等操作
使用Context对象的openOrCreateDatabase操作数据库,而不是使用SQLiteOpenHelper 创建数据库
//使用上下文创建数据库 //参数一:数据库的名字 //参数二:数据库的模式 //参数三:游标 一般为null SQLiteDatabase db=this.openOrCreateDatabase("user", MODE_PRIVATE, null);
创建数据库后必须要出路原来SQLiteOpenHelper 的onCreate()创建数据库和更新数据库的方法onUpgrade(),这时就需要execSQl方法来处理,这种方式将数据库的创建和打开推迟到需要的时候进行操作,是一种比较友好的方式
相关推荐
这个“android项目利用SQLiteOpenHelper创建数据库文件Demo”旨在演示如何在Android应用中初始化和操作SQLite数据库。通过理解SQLiteOpenHelper的工作原理和使用方式,开发者可以高效地管理应用程序的数据存储,确保...
SQLiteOpenHelper的主要职责是帮助我们创建和更新数据库。它包含以下关键方法: 1. **构造函数**:通常我们在自定义的SQLiteOpenHelper子类中初始化数据库的基本信息,如数据库名称和版本号。 ```java public ...
SQLiteOpenHelper是Android提供的一种管理SQLite数据库的工具类,它简化了数据库的创建和版本管理。本篇文章将深入探讨如何在Android中使用SQLiteOpenHelper进行数据库的简单应用。 首先,SQLiteOpenHelper有两个...
在 SQLite 中,创建数据库是通过继承 SQLiteOpenHelper 类来实现的。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:构造函数、...
在创建数据库时,需要继承 SQLiteOpenHelper 类,并重写其构造方法。例如: public class MySQLOpenHelper extends SQLiteOpenHelper { public MySQLOpenHelper(@Nullable Context context, @Nullable String name...
接下来,我们来看看如何使用SQLiteOpenHelper创建数据库实例和执行CRUD(创建、读取、更新、删除)操作。 创建数据库实例: ```java public class DatabaseHelper extends SQLiteOpenHelper { // 构造函数,传入上...
`onCreate()`方法在首次创建数据库时调用,用于执行数据库的初始化工作,比如创建表。`onUpgrade()`方法则在数据库版本升级时调用,可以用来更新表结构或执行其他升级逻辑。 在"SuperDB"中,你需要定义一个继承自...
`onCreate()`方法在首次创建数据库时调用,`onUpgrade()`在数据库升级时调用。 ```java public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "MyDatabase.db...
本篇将详细讲解如何在Android应用中使用SQLite存储数据以及如何在SDCard(外部存储)上创建数据库。 首先,我们需要在Android项目中创建一个SQLite数据库。这通常通过实现`SQLiteOpenHelper`的子类来完成。`...
1. **创建数据库辅助类**:通常我们会创建一个SQLiteOpenHelper的子类,这个类负责创建和升级数据库。在SQLiteOpenHelper的构造函数中,传入上下文和数据库版本号。重写`onCreate()`方法来创建数据库时的初始结构,...
`onCreate()` 方法在首次创建数据库时被调用,用于执行创建表等初始化操作;`onUpgrade()` 方法则在数据库版本升级时被调用,通常用于修改表结构或更新数据。 创建自定义的SQLiteOpenHelper子类,你需要继承...
`onCreate()`方法会在首次创建数据库时调用,用于创建表结构。`onUpgrade()`方法在数据库版本升级时调用,可以用来更新或删除旧表。 要执行数据库操作,如插入、查询、更新或删除数据,我们需要使用`SQLiteDatabase...
onCreate()用于首次创建数据库时执行的初始化操作,如创建表;onUpgrade()则在数据库升级时调用,可以用来修改表结构或更新数据。 二、数据库版本升级 数据库版本管理是通过SQLiteOpenHelper的构造函数中的参数来...
本篇文章将深入探讨如何在Android应用中进行SQLite数据库的基础操作,包括创建数据库、数据更新、插入与删除以及查询。 ### 1. 创建SQLite数据库 首先,我们需要创建一个SQLiteOpenHelper的子类,这个类是Android...
例如,当应用启动时,你可以创建数据库,插入一些初始数据;在需要时,通过`getAllTitles()`方法获取所有书籍信息,或者通过`getTitleById()`或`getTitleByISBN()`方法查找特定书籍。 确保在不再需要数据库连接时...
根据提供的代码片段,我们可以总结出以下关于在Android中创建数据库的相关知识点: ### 一、创建数据库的基本步骤 在Android开发中,通常使用SQLite作为本地数据库来存储应用数据。以下为创建一个SQLite数据库的...
创建数据库public class DBService extends SQLiteOpenHelper { private final static int VERSION = 1;private final static String DATABASE_NAME = “uniteqlauncher.db”; public DBService(Context context) {...
3. 创建数据库表:DBHelper类中实现了创建数据库表的方法,使用SQL语句来创建表结构。 4. 打开和关闭数据库:DBHelper类中实现了打开和关闭数据库的方法,用于管理数据库的连接和断开。 DBHelper类的使用 DBHelper...
以上就是Android中使用SQLite数据库的基本操作,包括创建数据库和表、插入数据、查询数据、删除数据以及更新数据。在实际应用中,我们还需要考虑线程安全、异常处理等细节问题,确保数据库操作的稳定性和可靠性。...
总结来说,这个例子展示了如何使用SQLiteOpenHelper创建SQLite数据库,定义数据表,以及如何进行数据的插入和查询。同时,也演示了如何将查询结果通过ListView呈现给用户。SQLite是Android开发中常用的数据存储方式...