Android存储之SQLiteDatbase

  SQLiteDatabase的方式会生成一个数据库文件,每个应用最多只对应一个数据库文件,即.db文件。

可以使用很多第三方工具进行打开,查看数据库里的内容。

昨晚试了好几种工具,如navicat,sqlite3,sqlitespy,等,还是觉得sqlitespy比较好用,而且体积也小,才1.7M。文件管理里有对应的sqlitespy。省得以后到处找sqlite的打开工具。

  前面的SharedPreferences的存储方式就类似于web应用中的表单的存储。

而SQLiteDatabase类似于把数据存储到Oracle中,只是安卓用是保存到sqlite数据库中而已。

注意点:

sqlite建表sql和Oracle中不同的地方:

Oracle中:

create table usertb (_id integer primary key autoincrement, name text not null , age integer not null , sex text not null )

  或者

create or replace table usertb (_id integer primary key autoincrement, name text not null , age integer not null , sex text not null )

sqlite中:

create table if not exists usertb (_id integer primary key autoincrement, name text not null , age integer not null , sex text not null )

  一定要加if not exists这个判断,sqlite中已经有了需要建的表,而建表的时候不加if not exists就会报错,因为不能够重复建同样表名的表。

MainActivity.java如下:

package com.example.sqlitedatabasetest;

import android.os.Bundle;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 每个程序都有自己的数据库 默认情况下是各自互相不干扰
		// 创建一个数据库 并且打开
//		SQLiteDatabase db = openOrCreateDatabase("user.db", MODE_PRIVATE, null);
//		db.execSQL("create table if not exists usertb (_id integer primary key autoincrement, name text not null , age integer not null , sex text not null )");
////		db.execSQL("create table usertb2 (_id integer primary key, name text not null , age integer not null , sex text not null )");
//
//		System.out.println("===================>");
//		db.execSQL("insert into usertb(name,sex,age) values(‘张三‘,‘女‘,18)");
//		db.execSQL("insert into usertb(name,sex,age) values(‘李四‘,‘女‘,19)");
//		db.execSQL("insert into usertb(name,sex,age) values(‘王五‘,‘男‘,20)");
//		System.out.println("!!!!!!!!!88888888234!!!!!!!!");
//		Cursor c = db.rawQuery("select * from usertb", null);
//		if (c != null) {
//			while (c.moveToNext()) {
//				Log.i("info", "_id:" + c.getInt(c.getColumnIndex("_id")));
//				Log.i("info", "name:" + c.getString(c.getColumnIndex("name")));
//				Log.i("info", "age:" + c.getInt(c.getColumnIndex("age")));
//				Log.i("info", "sex:" + c.getString(c.getColumnIndex("sex")));
//				Log.i("info", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
//			}
//			c.close();
//		}
//		db.close();

		//创建database
		SQLiteDatabase db = openOrCreateDatabase("wyl.db", MODE_PRIVATE, null);
		db.execSQL("create talbe if not exists wyl_table "
				+ " (_id integer primary key autoincrement,"
				+ "name text not null,sex text not null");
		//
		/**
		 * create table if not exists usertb (_id integer primary key
		 * autoincrement, name text not null , age integer not null , sex text not null )
		 */
		db.execSQL("insert into wyl_table (name,sex) values (‘wyl‘,‘男‘)");
		db.close();
	}

}

  

时间: 2024-08-03 17:13:44

Android存储之SQLiteDatbase的相关文章

Android存储子系统

这篇文章主要是分析Android存储向关联的一些模块,这个分析主要从大的工作流程和代码模块分析,没有对于没有分析到地方后续遇到后在详细分析.主要从以下几个模块分析 系统分区的挂载.外部分区挂载.Vold守候进程分.MountService的业务分析.Sdcard的详细分析.MTP模式分析和设备存储空间的监控机制. 系统分区挂载 Android是基于linux内核的系统,遵从linux的文件系统的挂载方式.在Android中在init进程负责挂载常用的system,data,cache等分区.In

Android 存储学习之在外部存储中读写文件

上节学习了如何在手机内部存储中读写文件,本节学习如何在手机的外部存储中读写文件.那就是如何在Sdcard中读写文件. 那我们还是用以前登录界面的例子举例说明,(登录界面请看上节Android 存储学习之在内部存储中读写文件) 先我们显示写的代码: 当点击确定并且自动登录的钩是选中的,则就会在sdcard文件夹写创建一个info.txt文件 public void login(View v) { String name = ed_nam.getText().toString(); String p

Android 存储学习之使用SharedPreference保存文件

上两节我们都是使用文本文件保存用户的信息,这明显是存在漏洞的.同时对文件中的内容不好管理.今天我们学习用SharedPreference保存.sharedPreference是专门保存一些比较零散的数据的. 我们还是用上节的例子分析,将用户的信息使用SharedPreference来保存. 注意:如果不知道是什么例子,请看Android 存储学习之在内部存储中读写文件 当点击确定按钮后,就会保存用户的信息: public void login(View v) { String name = ed

Android 存储(本地存储 SD卡存储 SharedPreference SQLite ContentProvider)

本文出自:http://blog.csdn.net/dt235201314/article/details/73176149 源码下载欢迎Star(updating):https://github.com/JinBoy23520/CoderToDeveloperByTCLer 一丶慨述 本周的学习内容是Android存储,要求:数据库Sqlite相关操作,常用的文件存取方式,以及实用场景学习,主要学习Sqlite,SD卡文件操作,SharedPreference 二丶效果演示:         

Android存储的实现

在Android开发中,少不了对数据文件进行存取,需要掌握的Android存储功能技术如下: SharedPreferences:即用户偏好,可以通过这个类,存取一些简单的用户设置信息: 外部存储:即面向外部SD卡存取数据,可为数据做持久化保存: 内部存储:即面向移动设备内部自带存储区域的存取(并不是手机的CPU内存),同样可为数据做持久化保存,由于移动设备可能并未安装SD卡而且SD卡可能被随时取出,所以使用内部存储相对外部存储更加安全,但内部存储空间有限,远小于外部存储. SQLite数据库:

一篇文章搞懂android存储目录结构

前言 前两天因为开发一个app更新的功能,我将从服务器下载的apk文件放在了内部存储目录(测试手机为小米,路径为:data/user/0/packagename/files)下面,然后安装的时候一直安装不了,提示解析包出错.后来查询发现,安装apk是调用了PackageInstaller,没有相关权限,这个无法获取内部路径,所以会安装不了.借机也复习了一遍Android下面存储相关的知识点,特来总结一番. 存储分类 对于Android存储目录,我总结成一张思维导图,如果有需要原图的,请在我的公众

Android 存储目录

Android 存储目录总结:https://www.jianshu.com/p/9528329d4787 Android内.外存储 易混淆点剖析(/mnt/sdcard./storage/sdcard0./storage/emulated/0等区别): https://blog.csdn.net/ITermeng/article/details/79423035 原文地址:https://www.cnblogs.com/pomodoro/p/12660460.html

android存储方式的应用场景

作为一个完整的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.文件存储.SQLite. Content Provider.对这几种方式的不同和应用场景整理如下.第一种: 使用SharedPreferences存储数据 适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型.基本类型的值.比如应用程序的各种配置信息(如是否打开音效.是否使用震动效果.小游戏的玩家积分等),解锁口 令密码等 核心原理:保存基于XML

Android存储数据的8种方式

第一种:SharedPreferences 1.使用键值对的方式存储数据 2.通常用于:保存用户的偏好设置.选择是否保存密码.记录文档阅读的位置等 3.实现方式(写入): a).获取SharedPreferences对象     getSharedPreferences("文件名",MODE_PRIVATE/MODE_MULTI_PROCESS) 前者表示只能当前应用程序访问该文件:后者表示可以多个进程访问该文件:文件是存放在:data/data/<package name>