Android数据储存之SQLiteDatabase SQLiteOpenHelper类的简单使用

SQLiteOpenHelper 简介:

SQLiteOpenHelper是一个借口!所以不能直接实例化!那我们想要得到SQLiteOpenHelper对象就需要实现该接口!创建该接口的实现类对象!

该对象中有如下常用方法:

getReadableDatabase()   打开或创建数据库,返回一个SQLiteDatabase对象;

getWritableDatabase()    打开或创建数据库,返回一个SQLiteDatabase对象;

getReadableDatabase() 与 getWritableDatabase() 它的区别:

使用getReadableDatabase() 获取SQLiteDatabase对象时如果该数据库不可以写入时(如磁盘空间已满)getReadableDatabase()方法返回的SQLiteDatabase对象时只可以读取该数据库中的数据

而方法getReadableDatabase()则会出现异常

abstract void

  onCreate(SQLiteDatabase db)

该方法是第一次创建数据库的时候才会调用!如果程序中已经有该数据库,该方法则不会被再次调用!通常表的初始化会写在该方法中!

abstract void

  onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)

该方法是当数据库版本更新的时候会被调用!在创建数据库的时候我们会设置一个数据库的版本!如果该数据库的版本有改动则就会调用该方法!

synchronized void

  close()

该方法关闭数据库!

String getDatabaseName()

获取数据库名称!

自定义我们自己的SQLiteOpenHelper

 1 public class MySqliteHelper extends SQLiteOpenHelper {
 2     private static String My_sql;
 3     private Context context;
 4     public MySqliteHelper(Context context, String name, CursorFactory factory,
 5             int version) {
 6         super(context, name, null, version);
 7         this.context = context;
 8     }
 9
10     @Override
11     public void onCreate(SQLiteDatabase db) {
12         My_sql = "CREATE TABLE MYTABLE (_ID INTEGER PRIMARY KEY,_NAME,_AGE,_ADDRESS)";
13         db.execSQL(My_sql);
14     }
15
16     @Override
17     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
18         Toast.makeText(context, "旧版本:"+oldVersion+",新版本"+newVersion, 0).show();
19     }
20
21 }

使用MySqliteHelper 操作数据库:

 1 public class MainActivity extends Activity implements OnClickListener{
 2     private Button btnQuery,btnUpdate,btnAdd,btnDelete;
 3     private MySqliteHelper mySqliteHelper;
 4     private int version = 2;
 5     private SQLiteDatabase database;
 6     private ContentValues contentValues;
 7     @Override
 8     protected void onCreate(Bundle savedInstanceState) {
 9         super.onCreate(savedInstanceState);
10         setContentView(R.layout.activity_main);
11         initView();
12         setEvent();
13     }
14
15     private void setEvent() {
16         btnQuery.setOnClickListener(this);
17         btnUpdate.setOnClickListener(this);
18         btnAdd.setOnClickListener(this);
19         btnDelete.setOnClickListener(this);
20     }
21
22     private void initView() {
23         btnAdd = (Button) this.findViewById(R.id.id_databaseButtonAdd);
24         btnDelete = (Button) this.findViewById(R.id.id_databaseButtonDelete);
25         btnQuery = (Button) this.findViewById(R.id.id_databaseButtonQuery);
26         btnUpdate = (Button) this.findViewById(R.id.id_databaseButtonUpdate);
27         mySqliteHelper  = new MySqliteHelper(this, "MySqlite.db", null, version);//创建数据库
28         database =    mySqliteHelper.getReadableDatabase();//打开数据库返回SQLiteDatabase对象
29         contentValues = new ContentValues();
30     }
31
32     @Override
33     public void onClick(View v) {
34         switch (v.getId()) {
35         case R.id.id_databaseButtonAdd:
36             contentValues.clear();
37             contentValues.put("_NAME","QQ");
38             contentValues.put("_AGE","15");
39             contentValues.put("_ADDRESS","NO");
40             database.insert("MYTABLE", null, contentValues);
41             break;
42         case R.id.id_databaseButtonQuery:
43             Cursor cursor = database.query("MYTABLE", null, null, null, null, null, null);
44             while (cursor.moveToNext()) {
45                 String name =cursor.getString(cursor.getColumnIndex("_NAME"));
46                 String id =cursor.getString(cursor.getColumnIndex("_ID"));
47                 String age =cursor.getString(cursor.getColumnIndex("_AGE"));
48                 String address =cursor.getString(cursor.getColumnIndex("_ADDRESS"));
49                 Toast.makeText(this,id+"|"+name+"|"+age+"|"+address, 0).show();
50             }
51             break;
52         case R.id.id_databaseButtonDelete:
53             //与上一篇同样的操作
54             break;
55         case R.id.id_databaseButtonUpdate:
56             //与上一篇同样的操作
57             break;
58
59         default:
60             break;
61         }
62     }
63
64 }

XML文件:

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="fill_parent"
 3     android:layout_height="fill_parent"
 4     android:orientation="vertical" >
 5
 6
 7     <Button
 8         android:id="@+id/id_databaseButtonAdd"
 9         android:layout_width="match_parent"
10         android:layout_height="wrap_content"
11         android:text="添加数据" />
12
13     <Button
14         android:id="@+id/id_databaseButtonUpdate"
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:text="修改数据" />
18
19     <Button
20         android:id="@+id/id_databaseButtonDelete"
21         android:layout_width="match_parent"
22         android:layout_height="wrap_content"
23         android:text="删除数据" />
24
25     <Button
26         android:id="@+id/id_databaseButtonQuery"
27         android:layout_width="match_parent"
28         android:layout_height="wrap_content"
29         android:text="查询数据" />
30 </LinearLayout>
时间: 2024-10-20 14:59:41

Android数据储存之SQLiteDatabase SQLiteOpenHelper类的简单使用的相关文章

Android数据储存之SQLiteDatabase 简单增删改查

SQLiteDatabase 使用 SQLiteDatabase提供如下方法来打开一个文件对应的数据库: openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags)  打开path文件所代表的文件 openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)   打开或创建(如果不存在时)path文件所代表的文件 openOr

Android数据储存——Sqlite

1.什么是Sqlite? SQLite是轻量级的.嵌入式的.关系型数据库. 2.Sqlite储存在Android系统的哪? 数据库存储的位置在data/data/<packagename>/databases/ 3.使用Sqlite基本流程 [1]创建一个类继承SQLiteOpenHelper并复写其中方法 [2]通过SQLiteOpenHelper的方法获取SQLiteDatabase对象 调用SQLiteOpenHelper的getWritableDatabase()获取一个能读能写的SQ

android数据储存之存储方式

可以将数据储存在内置或可移动存储,数据库,网络,sharedpreference. android可以使用Content provider来使你的私有数据暴漏给其他应用程序. 一.sharedpreference 得到sharedpreference的两种方法: 1.getSharedPreferenced():使用这个方法你可以定义多个preference文件 2.getPreferenced():只创建一个preference文件 sharedpreference不是严格用来储存"用户配置&

Android数据储存

Android提供了三种数据储存的方式,分别为: 1.文件储存--文件存储数据使用了Java中的IO操作来进行文件的保存和读取 2.SharedPreferences储存--SharedPreferences可以存取简单的数据 3.Sqlite储存--Sqlite是一个Android内建的轻量级数据库 下面会用三个章节分别介绍这三种储存方式 Android数据储存--文件储存 Android数据储存--SharedPreferences储存 Tips:很多文章认为Android的数据储存有5种,

Android数据储存——SharedPreferences储存

SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data/data/<包名>/shared_prefs目录下. 读取SharedPreference 1.获取SharedPreference对象 /* * name 打开的SharedPreferences文件名称(不需要.xml后缀) * mode 打开的SharedPreferences模式 */ SharedPrefere

Android 数据存储 利用SQLiteDatabase实现简单的学生管理

转载请注明出处:明桑Android 这是作为上一篇Android 数据存储 如何搞定SQLite Database的实例练习,之所以单独列出来是因为除了数据库方面的知识,还涉及其它方面的知识,所以就写的详细点,啰嗦点.希望对初学者有所帮助.当然这个Demo比较简单,有很多可以改进的地方,但那不是这里探讨的重点,重点学习如何将SQLiteDatabase数据绑定到我们的界面! 本文代码地址:UseSQLitDatabase 我们要做一个简单的学生管理的demo,创建student.db,包括nam

第三十五讲:Android数据储存之SharedPreferences

人的一生,总是难免有浮沉.不会永远如旭日东升,也不会永远痛苦潦倒.反复地一浮一沉,对于一个人来说,正是磨练.因此,浮在上面的,的,不必骄傲:沉在底下的,更用不着悲观.必须以率直.谦虚的态度,乐观进取.向前迈进. -- 松下幸之助 本讲内容:SharedPreferences 数据储存 一.SharedPreferences的作用 应用程序在运行的时候,可能会随着用户的使用而保持该用户的配置信息,如上次播放时的eq设置,音量设置等等,这些小量 的信息可以通过SharedPreferences来保持

Android 数据存储之 SQLiteDatabase

? 惯例:安卓的三种本地的典型数据存储方式 SharedPreferences 以文件格式保存在本地存储中 SQL数据库 本节学习的是 SQLiteDatabase 的使用方式,而在使用方面也只是展示了如何创建数据库,创建表,写入数据.然后查询出来. 因为之前在 word 中操作以表格的形式插入多行代码时遇到了无法高亮,模糊不清的状况,所以本节并不会写出使用方法. 详情请直接访问我的 GitHub 项目:https://github.com/Chenstyle/AndroidTraining 具

android数据储存之应用安装位置

原文地址:http://developer.android.com/guide/topics/data/install-location.html#Compatiblity 从API8開始,你能够将你的应用安装在外部储存.这是一个可选的特征,你能够在你的应用的manifest中声明:android:installLocation属性.假设你不声明这个属性,你的应用程序将会被安装在内部储存,而且不能被移到外置储存. <manifest xmlns:android="http://schema