Android Studio 学习(四) 数据库
文件存储
写数据
String data = "Data ti save";
FileOutputStream out =null;
BufferedWriter writer =null;
try{
out = openFileOutput("data",Context.MODE_PRIVATE)//MODE_APPEND有同名文件时追加,PRIVATE是默认,有同名文件时覆盖
writer = new BufferedWriter(new OutpurStreamWriter(out));
writer.writer(data);
}
catch(IOexception e)
{
e.printStackTrace();
}
finally
{
try{
if(writer!=null)
{
writer.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
- 在右侧的Device File Explorer 查看存储的文件
- 存放路径/data/data/com..../files/
读数据
P201
SharedPreferences存储
- 存放路径 /data/data/com.../shared_prefs
一、Context类中的getSharedPreferences()方法
getSharedPreferences("file_name","MODE_PRIVATE")//第二个参数只有一种
二、Activity类中的getPreferences(MODE_PRIVATE)//文件名默认我活动类名
三、PreferenceManager类中的getDefaultSharedPreferences()方法
具体方法
写
SharePreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name","Tom");
editor.putInt("age",28);
editor.apply();//提交
读
ShareOreferences pref = getSharedPreferences("data",MODE_PRIVATE);
String name=pref.getString("name","")//若找不到值 就用方法传进来的值代替
SQLite数据库
存储位置 /data/data/com.example.administrator.myapplication/databases
SQLiteOpenHelper 两个实例方法
getReadableDatabase()//都可以对可读写的数据库进行读写
getWriteableDatabase()//不可写入的时候 使用此方法报错
构造方法
SQLiteOpwnHelper(Context,"database_name",null,"1"//database_version);//当最后一个参数大于上一个版本时 会执行onUpgrade方法
package com.example.administrator.myapplication;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;
public class MyDatabaseHelper extends SQLiteOpenHelper {
public static final String CREATE_BOOK=
"create table Book(" +
"id integer primary key autoincrement," +
"author text," +
"pages integer," +
"name text)";
private Context mContext;
public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int version)
{
super(context,name,factory,version);
mContext=context;
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(CREATE_BOOK);//执行建表语句
Toast.makeText(mContext,"yes",Toast.LENGTH_LONG).show();
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
db.execSQL("drop table if exists Book");
db.execSQL("drop table if exists Category");
onCreate(db);//升级数据库
}
}
更新
SQLiteDatabase db = SQLiteOpenHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("key","value");
db.insert("table_name",null,values);//插入
db.update("table_name",values,"name=?",new String[] {"The Da "}) //?是个占位符,The Da 会替换? 意思就是更新 名为 The Da 的内容
db.delete("table_name","pages>?",new String[] {"500"})//删除大于500行的数据
values,clear();
adb shell
- sqlite3 databasename.db
- .table 查看有哪些表
- .schema 建表语句
查询
使用query()方法七个参数
SQLiteDatabase db = SQLiteOpenHelper.getWritableDatabase();
Cursor cursor = db.query("Bool",null,null,null,null,null,null,null);
if(cursor.moveToFirst())
{
do{
String name=cursor.getString(cursor.getColumnIndex("name"));
}while(cursor.moveToNext());
}
cursor.close();
使用sql方式
db.execSQL("insert into Book (name,author,pages,price) values(?,?,?,?),new String[] {"sfs","sfsf",“23.5”,”454"}");
db.rawQuery("select * from Book",null);
LitePal (未完待续)
Android Studio 学习(四) 数据库的更多相关文章
- Android Studio 学习 - 基本控件的使用;Intent初学
Android Studio学习第三天. 今天主要学习 1. RadioButton.CheckBox.RatingBar.SeekBar等基础控件的使用. 结合Delphi中相类似的控件,在这些基本 ...
- Android JNI学习(四)——JNI的常用方法的中文API
本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...
- Android Studio 学习笔记(一)环境搭建、文件目录等相关说明
Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...
- Android Studio 学习笔记(四):Adapter和RecyclerView说明
在现版本中,滚动控件有多种,而相比于ListView,GridView,RecyclerView的用途更广,因此将前两者作为Adapter适配器的引入,再对RecyclerView进行简单讲解. MV ...
- Android Studio学习笔记
转:http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1 背景 相信大家对Android Studio已经不陌生了,An ...
- Android Studio 学习 - HelloWorld
今天是学习Android Studio的第2天,加油! 1. 首先要记录下使用Android Studio的一个代码自动完成的功能.平常基本上用Delphi,乍一换工具,各种不习惯,或者说不熟悉.按照 ...
- Android Studio 学习 - 程序安装
痛定思痛,从今天开始专心学习AndriodStudio.希望以此为契机,把Java学扎实.更希望自己能坚持下去,不要半途而废. 记录一些日常的工作以及碰到的问题,权当勉励自己.荀子曰:吾尝终日而思矣, ...
- android studio如何查看数据库文件
android studio查看数据库文件有两种方式: 1.SQLSCOUT 优点:集成在as中,功能强大. 缺点:收费,破解麻烦. 2.Android Device Monitor 中的File E ...
- android studio 学习之一 安装和基本使用
一.简介 Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开 ...
- 在 Android Studio 上调试数据库 ( SQLite ) (转)
转自:http://c.colabug.com/thread-1781696-1-1.html 以前 Eclipse 时代,调试 SQLite 都是将数据库文件导出到电脑,然后再用软件打开查看.现在我 ...
随机推荐
- Numpy学习一:ndarray数组对象
NumPy是Python的一个高性能科学计算和数据分析基础库,提供了功能强大的多维数组对象ndarray.jupyter notebook快速执行代码的快捷键:鼠标点击选中要指定的代码框,Shift ...
- [Postman]排除API请求(9)
可能存在API无法运行或出现意外行为的情况.如果您没有收到任何回复,邮递员将显示有关连接服务器时出错的消息. 有关错误可能原因的更多详细信息,请打开Postman Console.它有关于故障的详细信 ...
- centos 安装setup命令的方法
yum -y install setuptool 安装setup命令工具 yum -y install ntsysv 安装setup工具配套的系统服务组件 yum -y install system- ...
- fixed Oracle SQL报错 #ORA-01460: 转换请求无法实施或不合理
最近遇到一个oracle错误,之前并没有遇到过,并不是select in超过1000个导致的,通过网上资料说是oracle版本导致,也有的说是oracle SQL过长导致. 然后通过自己实践应该说是o ...
- 什么 是JavaScript中的字符串类型之间的转换问题详解? 部分4
字符串类型 单双引号都可以!建议使用单引号!(本人建议:个人觉得单个字符串更利于网页优化@特别地方特别处理!); 判断字符串的长度获取方式:变量名.length html中转义符: < < ...
- python基础-循环语句(5)
一.循环语句介绍 一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成 循环不是必须要使用的,但是为了提高代码的重复使用率,所以有经验的开发者都会采用循环 二.常见的循环形式 while循环 ...
- Go Slice 使用中的小陷阱
go中的切片有两个特性: 底层的数据结构是数组 type slice struct { array unsafe.Pointer len int cap int } 包括从切片和数组派生出来的切片都是 ...
- 全网最详细的一款满足多台电脑共用一个鼠标和键盘的工具Synergy(图文详解)
不多说,直接上干货! 前言 如今无论你是在公司做大数据开发还是实验室里搞科研,这个软件确实好用,作为正在通往大数据架构师路上的我们没有几台电脑怎么行?台式机.笔记本,都放在写字台上,笔记本内置键盘鼠标 ...
- 对requestAnimationFrame的一点理解
假设一个web页面为60fps(fps意为frame per second),这意为着这个页面每秒钟能重新渲染60次,60帧/1000ms换算过来约为16.6ms/帧. requestAnimatio ...
- 安装postgreSQL出现configure: error: zlib library not found解决方法
./configure --prefix=/usr/local/pgsql ..... configure: error: zlib library not foundIf you have zlib ...