`
250367976
  • 浏览: 26719 次
社区版块
存档分类
最新评论

Android学习笔记之数据库

阅读更多

做Android肯定要用到SQLite数据库,下面是SQLite的操作
首先是SQLite的操作类:DBHelper.java

public class DBHelper extends SQLiteOpenHelper {
	private static final String DB_NAME = "name.db";
	private static final String TBL_NAME = "Word";

	private SQLiteDatabase db;
	private Cursor cursor ;//游标
	/**
	 * 初始化
	 * @param c
	 */
	DBHelper(Context c) {
		super(c, DB_NAME, null, 2);//2是版本号
	}
	/**
	 * 第一次加载数据库时调用,如果是自己导进来的就不用这个了
	 */
	@Override
	public void onCreate(SQLiteDatabase db) {
		 db.execSQL("create table Word(uid integer primary key autoincrement, uname varchar(20), uaddress varchar(20))");  
	}
	
	/**
	 * 查询 
	 * @param g
	 * @return cursor
	 */
	public Cursor query() {
		db = getWritableDatabase();
		cursor = db.rawQuery("select * from Word ",null);//用这个方法可以完成所有的,只要改下sql语句就行
		return cursor;
	}
	//有条件的
	public Cursor query(String id) {
		db = getWritableDatabase();
		cursor = db.rawQuery("select * from Word where uid=? ",new String[]{id});
		return cursor;
	}
	/**
	 * 关闭
	 */
	public void close() {
		if (db != null){
			db.close();
		}
	}

 然后在Activity中实例化调用就行

DBHelper dbHelper = new DBHelper(getApplication());
Cursor c = dbHelper.query(String.valueOf(1));

 

因为SQLite嵌入式的,所以我们打包apk的时候,要记得连数据库文件一起打包;

把SQLite数据库文件放到项目下assets中或者是res/raw,两种取值的方法有所不同;

raw:getBaseContext().getResources().openRawResource(R.raw.name);

 assets:getBaseContext().getAssets().open(name.db);

 

下面是具体的操作:

String DB_PATH = "/data/data/com.test.demo/databases/";//com.test.demo是你项目所在的包
String DB_NAME = "name.db";//文件名
// 检查 SQLite 数据库文件是否存在
if ((new File(DB_PATH + DB_NAME)).exists() == false) {
	// 如 SQLite 数据库文件不存在,再检查一下 database 目录是否存在
	File f = new File(DB_PATH);
	// 如 database 目录不存在,新建该目录
	if (!f.exists()) {
		f.mkdir();
	}
	try {
		InputStream is = getBaseContext().getResources()
			.openRawResource(R.raw.english);
		// 输出流
		FileOutputStream os = new FileOutputStream(DB_PATH+ DB_NAME);
		int length = is.available();
		// 文件写入
		byte[] buffer = new byte[length];
		while ((length = is.read(buffer)) > 0) {
			os.write(buffer, 0, length);
		}
		// 关闭文件流
		os.flush();
		os.close();
		is.close();
	} catch (Exception e) {
		e.printStackTrace();
	}
}


 注意:有些系统如2.2的话,如果文件.db大于1M的话,会报错:Data exceeds UNCOMPRESS_DATA_MAX (1622016 vs 1048576) ;因为assetsManager 无法处理大于1M的文件的压缩和解压。只要把我们文件的后缀名改成:".jpg", ".jpeg", ".png", ".gif",
     ".wav", ".mp2", ".mp3", ".ogg", ".aac",
     ".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet",
     ".rtttl", ".imy", ".xmf", ".mp4", ".m4a",
     ".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2",
     ".amr", ".awb", ".wma", ".wmv" 这些都可以,,,代码还是像上面一样就行

分享到:
评论

相关推荐

    android 私人笔记实现(数据库示例)

    这篇私人笔记实现基于Android数据库,提供了完整的源码,适合初学者学习。通过用户名和密码的登录验证,确保了数据的安全性。现在,我们将深入探讨如何在Android中实现这样的功能。 首先,Android使用SQLite作为...

    android数据库SQLite学习笔记.pdf

    android数据库SQLite学习笔记.pdf

    java学习细节 android学习笔记

    根据给定的信息,我们可以从Java和Android学习笔记中提取出一系列重要的知识点,下面将逐一进行详细解释。 ### Java基础知识 #### 1. 命令行基础操作 - **`javacmd`**: 这个命令是Java命令行工具的一部分,用于...

    android 学习笔记(全全整理)

    Android学习笔记全全整理,是针对想要深入理解并掌握Android开发技术的学习者们的一份宝贵资源。这份笔记涵盖了从基础到高级的多个方面,旨在帮助读者建立起完整的Android知识体系。以下将详细介绍其中可能包含的...

    android学习笔记.zip

    《Android学习笔记》 在移动应用开发领域,Android操作系统占据着重要的地位,为开发者提供了丰富的API和工具,使得创建各种应用程序变得可能。本压缩包文件包含了一位学习者从第一天到第五天,以及一个特定项目...

    Android-笔记一款以sqlitedatabase为数据库采用MVP架构的轻便易用的笔记app

    本项目名为"Android-笔记一款以sqlitedatabase为数据库采用MVP架构的轻便易用的笔记app",它是一个典型的Android应用示例,旨在展示如何结合SQLite数据库和Model-View-Presenter(MVP)架构模式来创建一个功能完善的...

    黑马程序员Android学习笔记

    《黑马程序员Android学习笔记》是一份专为初学者设计的详尽教程,旨在帮助那些希望踏入安卓开发领域的人员快速掌握核心知识。这份笔记涵盖了从基础到进阶的多个主题,帮助学习者系统地理解Android应用开发的过程。 ...

    Android学习笔记-SQLite介绍-以及使用Sqlite-进行数据库的创建-完成数据.pdf

    Android学习笔记-SQLite介绍-以及使用Sqlite-进行数据库的创建-完成数据.pdf

    Android Studio 学习笔记-新手入门-(1)第一个案例

    这篇学习笔记将引导新手入门,通过创建第一个简单的案例来了解Android Studio的基本操作。 首先,让我们了解一下Android Studio的核心功能。它基于IntelliJ IDEA,具备代码自动补全、重构、调试等强大的开发特性。...

    android 学习笔记doc

    在Android学习过程中,掌握核心概念和技术是至关重要的。这篇学习笔记涵盖了Android开发的基本知识点,旨在帮助初学者系统地理解和深入探索这个平台。 1. **Android系统架构**:Android由Linux内核、硬件抽象层...

    Android学习笔记(5-13)

    这篇Android学习笔记主要涵盖了从第五章到第十三章的内容,是Android开发者或对Android系统感兴趣的初学者的重要参考资料。笔记详细解读了Android应用开发的核心概念和技术,旨在帮助读者深入理解并掌握Android开发...

    java、linux、Android 学习笔记

    【Android学习笔记】 Android是一个开源的移动操作系统,主要应用于智能手机和平板电脑。它由Google主导并开源,基于Linux内核。学习Android开发,你需要熟悉Java或Kotlin语言,理解Android SDK、Android Studio...

    MONO FOR ANDROID学习笔记全套

    【Mono for Android学习笔记全套】是一份详尽的资源,旨在帮助开发者掌握使用Mono和C#进行Android应用开发的技术。Mono是.NET框架的一个开源实现,它使得C#开发者能够在多种平台上,包括Android,编写和运行应用程序...

    android 很好的学习笔记

    【Android学习笔记详解】 在移动应用开发领域,Android操作系统占据着重要的地位,为开发者提供了丰富的平台和无限的可能性。"Android很好的学习笔记"是一份专为初学者设计的资源,旨在帮助那些想要踏入Android开发...

    很好的android学习笔记

    【Android学习笔记】 Android是一种基于Linux内核的开源操作系统,主要应用于移动设备,如智能手机和平板电脑。这个“很好的android学习笔记”包含了作者在学习Android开发过程中积累的宝贵经验,旨在帮助初学者或...

Global site tag (gtag.js) - Google Analytics