SQLite一款轻量级的关系型数据库运算速度快占用资源少
一、创建数据库
新建一个Java文件继承SQLiteOpenHelper 重写onCreate() 和onUpgrade()方法具体的代码如下所示:
public class MyDataBase extends SQLiteOpenHelper {
private Context mcontext;
public MyDataBase(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
mcontext=context;
}
@Override
public void onCreate(SQLiteDatabase db) {
//db.execSQL();
//建表的语句
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
构造方法里指定数据库名字和版本号,在别的地方调用建立数据库的时候如下:
MyDatabaseHelper mydatabasehelper=new MyDatabaseHelper(this,“xxx.db”,null,1);
mydatabasehelper.getWritableDatabase(); //数据库创建成功
二、升级数据库
我们重写SQLiteOpenHelper类里的方法时有一个onUpgrad()方法还没有用到,所以更新数据库的话我们就用到了该方法,在该方法中调用一下onCreate()方法,还要在创建实例的时候 MyDatabaseHelper mydatabasehelper=new MyDatabaseHelper(this,“xxx.db”,null,2); 更新一下版本号。
三、数据库的操作
我们对数据库的操作无非就是对数据库中的表进行增删改查 CRUD,
插入数据:insert(“表”,null,values);
我们要新建一个ContentValues的实例,调用该实例的put()方法来组装数据,完事以后传到insert()方法里,insert()方法被触发就完成了书据的插入
更新数据:update("表",values,''name=?',new String[]{ " xxxxxxx"});
这里的四个参数的前两个不再介绍,第三个和第四个是一对,用于进行判读,name=?中的?是一个占位符,用来匹配第四个参数
删除数据:delete("表","pages> ?",new String[ ] {"条件"});
同样第二个和第三个参数是匹配的条件。
查询数据:query("表",null,null,null,null,null,null);
query()方法返回一个Cursor 对象,我们可以记住cursor的各种getXXX()方法来得到我们要的数据
query()方法里参数的含义分别是:
table 表名
columns 列名
selection where的约束条件
selectionArgs where的占位符
groupBy 指定需要group by的列
having 对group by的结果进行进一步的约束
orderBy 指定查询结果的排序方式
SharedPreference-----是使用键值对的方式来存储数据的
一、将数据存储到SharedPreference中
得到SharedPreference对象的方法:
(1).Context类中的getSharedPreference()方法
(2)Activity类中的getPreference()方法
(3)PreferenceManager类中的getDefaultSharedPreferences()
添加数据的步骤
调用SharedPreferences对象的edit()方法来获取一个SharedPreference.Editor对象
向SharedPreference.Editor对象中添加数据
调用apply()提交
代码示例:
SharedPreferences.Editor editor=getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString();
editor.putBoolean();
editor.putInt();
editor.apply();
二、读取数据
SharedPreferences preferences=getSharedPreferences("data",MODE_PRIVATE);
String name=preferences.getString();
int age=preferences.getInt();
将数据存储到文件中
一、数据存储到文件中
Context类中提供了一个openFileOutput()方法,可以将数据存储到指定的文件中。
openFileOutput()方法返回的是一个FileOutputStream对象,得到这个对象以后就可以使用java的流来将数据写入到文件中。具体代码如下:
public void save(){
String data="this is data";
FileOutputStream fileOutputStream=null;
BufferedWriter bufferedWriter=null;
try {
fileOutputStream=openFileOutput("data", Context.MODE_PRIVATE);
bufferedWriter=new BufferedWriter(new OutputStreamWriter(fileOutputStream));
bufferedWriter.write(data);
}catch (IOException e){
e.printStackTrace();
}finally {
try {
if (bufferedWriter!=null){
bufferedWriter.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
二、从文件中读取数据
Context类中还提供了一个openFileInput()方法用于从文件中读取数据具体代码如下:
public String read(){
FileInputStream fileInputStream=null;
BufferedReader bufferedReader=null;
StringBuilder stringBuilder=new StringBuilder();
try {
fileInputStream=openFileInput("data");
bufferedReader=new BufferedReader(new InputStreamReader(fileInputStream));
String line="";
while ((line=bufferedReader.readLine())!=null){
stringBuilder.append(line);
}
}catch (IOException e){
e.printStackTrace();
}finally {
if (bufferedReader!=null){
try{
bufferedReader.close();
}catch (IOException e){
e.printStackTrace();
}
}
return bufferedReader.toString();
}
}