`
百合不是茶
  • 浏览: 354793 次
社区版块
存档分类
最新评论

Context和SQLiteOpenHelper创建数据库

阅读更多

       一直以为安卓数据库的创建就是使用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方法来处理,这种方式将数据库的创建和打开推迟到需要的时候进行操作,是一种比较友好的方式

 

0
0
分享到:
评论

相关推荐

    android 项目利用SQLiteOpenHelper创建数据库文件Demo

    这个“android项目利用SQLiteOpenHelper创建数据库文件Demo”旨在演示如何在Android应用中初始化和操作SQLite数据库。通过理解SQLiteOpenHelper的工作原理和使用方式,开发者可以高效地管理应用程序的数据存储,确保...

    SQLiteOpenHelper数据库

    SQLiteOpenHelper的主要职责是帮助我们创建和更新数据库。它包含以下关键方法: 1. **构造函数**:通常我们在自定义的SQLiteOpenHelper子类中初始化数据库的基本信息,如数据库名称和版本号。 ```java public ...

    android SQLiteOpenHelper 数据库简单应用

    SQLiteOpenHelper是Android提供的一种管理SQLite数据库的工具类,它简化了数据库的创建和版本管理。本篇文章将深入探讨如何在Android中使用SQLiteOpenHelper进行数据库的简单应用。 首先,SQLiteOpenHelper有两个...

    SQLite创建数据库增,删,改操作

    在 SQLite 中,创建数据库是通过继承 SQLiteOpenHelper 类来实现的。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:构造函数、...

    android studio使用SQLiteOpenHelper()建立数据库的方法

    在创建数据库时,需要继承 SQLiteOpenHelper 类,并重写其构造方法。例如: public class MySQLOpenHelper extends SQLiteOpenHelper { public MySQLOpenHelper(@Nullable Context context, @Nullable String name...

    SQLiteOpenHelper

    接下来,我们来看看如何使用SQLiteOpenHelper创建数据库实例和执行CRUD(创建、读取、更新、删除)操作。 创建数据库实例: ```java public class DatabaseHelper extends SQLiteOpenHelper { // 构造函数,传入上...

    SuperDB,演示使用SQLiteOpenHelper继承子类操作数据库例子

    `onCreate()`方法在首次创建数据库时调用,用于执行数据库的初始化工作,比如创建表。`onUpgrade()`方法则在数据库版本升级时调用,可以用来更新表结构或执行其他升级逻辑。 在"SuperDB"中,你需要定义一个继承自...

    Android 创建SQLite 数据库

    `onCreate()`方法在首次创建数据库时调用,`onUpgrade()`在数据库升级时调用。 ```java public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "MyDatabase.db...

    Android中数据存储--采用SQLite存储数据及在SDCard中创建数据库

    本篇将详细讲解如何在Android应用中使用SQLite存储数据以及如何在SDCard(外部存储)上创建数据库。 首先,我们需要在Android项目中创建一个SQLite数据库。这通常通过实现`SQLiteOpenHelper`的子类来完成。`...

    android创建数据库

    1. **创建数据库辅助类**:通常我们会创建一个SQLiteOpenHelper的子类,这个类负责创建和升级数据库。在SQLiteOpenHelper的构造函数中,传入上下文和数据库版本号。重写`onCreate()`方法来创建数据库时的初始结构,...

    android 手机数据库 实现SQLiteOpenHelper

    `onCreate()` 方法在首次创建数据库时被调用,用于执行创建表等初始化操作;`onUpgrade()` 方法则在数据库版本升级时被调用,通常用于修改表结构或更新数据。 创建自定义的SQLiteOpenHelper子类,你需要继承...

    Android sqlite数据库的创建和使用

    `onCreate()`方法会在首次创建数据库时调用,用于创建表结构。`onUpgrade()`方法在数据库版本升级时调用,可以用来更新或删除旧表。 要执行数据库操作,如插入、查询、更新或删除数据,我们需要使用`SQLiteDatabase...

    sqlite的一些基本操作,包括数据库创建、数据库版本升级、创建表、数据的增删改查

    onCreate()用于首次创建数据库时执行的初始化操作,如创建表;onUpgrade()则在数据库升级时调用,可以用来修改表结构或更新数据。 二、数据库版本升级 数据库版本管理是通过SQLiteOpenHelper的构造函数中的参数来...

    android的SQLite数据库基础操作(创建数据库,更新,增删改查)

    本篇文章将深入探讨如何在Android应用中进行SQLite数据库的基础操作,包括创建数据库、数据更新、插入与删除以及查询。 ### 1. 创建SQLite数据库 首先,我们需要创建一个SQLiteOpenHelper的子类,这个类是Android...

    在Android中创建和使用数据库

    例如,当应用启动时,你可以创建数据库,插入一些初始数据;在需要时,通过`getAllTitles()`方法获取所有书籍信息,或者通过`getTitleById()`或`getTitleByISBN()`方法查找特定书籍。 确保在不再需要数据库连接时...

    andriod创建数据库

    根据提供的代码片段,我们可以总结出以下关于在Android中创建数据库的相关知识点: ### 一、创建数据库的基本步骤 在Android开发中,通常使用SQLite作为本地数据库来存储应用数据。以下为创建一个SQLite数据库的...

    android创建数据库(SQLite)保存图片示例

    创建数据库public class DBService extends SQLiteOpenHelper { private final static int VERSION = 1;private final static String DATABASE_NAME = “uniteqlauncher.db”; public DBService(Context context) {...

    android数据库实例.pdf

    3. 创建数据库表:DBHelper类中实现了创建数据库表的方法,使用SQL语句来创建表结构。 4. 打开和关闭数据库:DBHelper类中实现了打开和关闭数据库的方法,用于管理数据库的连接和断开。 DBHelper类的使用 DBHelper...

    安卓 SQLite数据库的创建

    以上就是Android中使用SQLite数据库的基本操作,包括创建数据库和表、插入数据、查询数据、删除数据以及更新数据。在实际应用中,我们还需要考虑线程安全、异常处理等细节问题,确保数据库操作的稳定性和可靠性。...

    利用SQLiteOpenHelper实现SQLite数据的写入和查询

    总结来说,这个例子展示了如何使用SQLiteOpenHelper创建SQLite数据库,定义数据表,以及如何进行数据的插入和查询。同时,也演示了如何将查询结果通过ListView呈现给用户。SQLite是Android开发中常用的数据存储方式...

Global site tag (gtag.js) - Google Analytics