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

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数据库SQLite学习笔记.pdf

    android数据库SQLite学习笔记.pdf

    android 数据库SQLite学习笔记.docx

    android 数据库SQLite学习笔记.docx

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

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

    Android框架,数据库,中文doc以及学习笔记

    Android框架,数据库,中文doc以及学习笔记,好东西啊

    【安卓项目】——新闻资讯类项目

    Android学习笔记(十二)——数据存储(SQLite数据库) Android学习笔记(十三)——数据存储(LitePal操作数据库) Android学习笔记(十四)——内容提供器 Android学习笔记(十五)——侧滑容器(ViewPager) .......

    Android学习笔记(十二)——数据存储(SQLite数据库)

    Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...

    Android学习笔记(十三)——数据存储(LitePal操作数据库)

    Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...

    Android学习笔记-保存数据到SQL数据库中(Saving Data in SQL Databases)

    上篇文章学习了android保存文件,今天学习的是保存数据到SQL数据库中。相信大家对数据库都不陌生。对于大量重复的,有特定结构的数据的保存,用 SQL数据库 来保存是最理想不过了。 下面将用一个关于联系人的数据库...

    Android Sqlite3 学习笔记.

    Android Sqlite3 学习笔记.详细讲解了android内嵌的数据库Sqlite3的内容,供初学者使用

    Android学习笔记

    本人是一个做了两三年Android的大学程序员,最近打算整理一下自己所学到的东西,所以用iThoughtsX写了这个文档,这个文档暂时完善的有四大组件的介绍,其他的都在逐步完善中,计划中要做的是相关UI,网络方面,...

    Android零基础教程视频链接

    android基础教程,里边包括新版Android开发教程&笔记1--基础入门,Android开发教程&笔记2--基础入门二,Android开发教程&笔记3--环境...文件存取、数据库编程.Android开发教程+笔记13(待续)--应用、permission、资源

    基于Android的钢琴学习交流平台APP开发(源码+说明+演示视频+数据库).zip

    基于Android的钢琴学习交流平台APP开发(源码+说明+演示视频+数据库).zip 【项目技术】 开发工具:eclipse、Mysql、HburderX、java、jdk1.8 项目框架:SSM,Mybatis。 【实现功能】 首页: 搜索笔记、展示推荐的笔记 ...

    Android 传感器与数据库开发

    声明:本文作为自己的学习笔记,欢迎大家于本人学习交流。未经本人许可,文章不得用于商业用途。转载请注明出处 开发一个 Andorid APP,使其可以用手机传感器读取手机的实时加速度、角速度和方向角,并将数据保存,...

    android 系统笔记.zip

    包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...

    ThinkAndroid数据库模块

    刚接触ThinkAndroid的学习笔记

    JAVA 五年的工作经验和学习笔记

    由于本人目前允许上传的资源太小,所以无法上传整个的技术学习笔记(JAVA 五年的工作经验和学习笔记),待以后有机会会分享给大家。 技术体系包括: J2SE/J2ME/J2EE/JAVA代码优化/Flex(BlazeDS、PureMVC等技术)...

    Android资料

    Android开发的书籍资料,包括Android Studio的使用、数据库知识、API文档、框架解析、以及一部分Android基础学习笔记。

    Sonar应用技术笔记

    sonar应用技术笔记是笔者在学习sonar过程中的应用记录,包括安装,配置数据库,汉化,与maven集成,在eclipse中的配置,与jira集成,在android工程中的集成配置

    刚开始学习android笔记,和一些控件的整理

    对一些控件的解释,和使用,和监听以及一些页面跳转,和数据库,和Dialog 和布局的使用listView的使用,下拉菜单,Menu,元素的属性,CheckBox,适配器(Adapter),XML解析,android 中的画图,等。

Global site tag (gtag.js) - Google Analytics