android sqlite轻量级数据库的基本运用之创建数据库
2016-07-15 20:10
489 查看
文件存储和SharedPreferences存储毕竟只适用于去保存一些简单的数据和键值对,当需要存储大量复杂的关系型数据的时候,你就会发现以上两种存储方式很难应,所以这个时候我们需要sqlite的帮助了
*作为android内置的一个轻量级数据库它的运算速度非常快,占用资源很少, 通常只需要几百 K 的内存就足够了, 因而特别适合在移动设备上使用。 SQLite不仅支持标准的 SQL 语法,还遵循了数据库的 ACID 事务,所以只要你以前使用过其他的数据库 ,就可以很快的上手sqlite了
首先 我们要想使用sqlite,必须使用android给我们提供的一个叫 SQLiteOpenHelper 的抽象类,我们可以借助这个类对数据库进行修改与更新,既然是抽象类就意味着我们需要将它继承,并重写他的两个方法,分别是 onUpgrade() 与 onCreate(),如果你的英语功底好 不难看出这两个方法就是创建数据库与更新数据库了
好了,理论讲的差不多了,接下来,开始撸代码了,我们首先创建一个数据库,并且向数据库里面添加一张关于书籍的表单
首先我们先创建出继承 SQLiteOpenHelper 的帮助类 并且重写onUpgrade() 与 onCreate()这两个方法
从上面的代码我们可以看出,我们写了一条String类型的sql语句 创建book这个表单,这个表单包含author id price pages name 这四个字段,然后我们oncreate函数中通过execSQL这个方法来向数据库中添加这张表单
然后我们在MainAcitivity的OnCreate函数 new MyDataBase这个对象 ,然后通过构造函数的参数将数据库名指定为 BookManager.db,版本号指定为 1,然后调用了getWritableDatabase()方法就会检测到当前程序中并没有BookManager.db这个数据库, 于是会创建该数据库并调用 MyDatabaseHelper中的 onCreate()方法,这样 Book 表也就得到了创建,当我们的程序第一次启动后然后就会显示一条toast信息,但是第二次启动的时候就不会显示这条Toast了,
接下来我们看一下启动后的情况
由于我是用的真机进行开发,所以是看不到数据库文件的,所以就不能展示数据库文件了
*作为android内置的一个轻量级数据库它的运算速度非常快,占用资源很少, 通常只需要几百 K 的内存就足够了, 因而特别适合在移动设备上使用。 SQLite不仅支持标准的 SQL 语法,还遵循了数据库的 ACID 事务,所以只要你以前使用过其他的数据库 ,就可以很快的上手sqlite了
首先 我们要想使用sqlite,必须使用android给我们提供的一个叫 SQLiteOpenHelper 的抽象类,我们可以借助这个类对数据库进行修改与更新,既然是抽象类就意味着我们需要将它继承,并重写他的两个方法,分别是 onUpgrade() 与 onCreate(),如果你的英语功底好 不难看出这两个方法就是创建数据库与更新数据库了
好了,理论讲的差不多了,接下来,开始撸代码了,我们首先创建一个数据库,并且向数据库里面添加一张关于书籍的表单
首先我们先创建出继承 SQLiteOpenHelper 的帮助类 并且重写onUpgrade() 与 onCreate()这两个方法
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.widget.Toast; /** * Created by blue on 2016/7/15. */ public class MyDataBase extends SQLiteOpenHelper { public static final String sqlStatements = "create table book (" + "id integer primary key autoincrement, " + "author text, " + "price real, " + "pages integer, " + "name text)"; private Context context; public MyDataBase(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); this.context = context; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(sqlStatements); Toast.makeText(context,"数据库创建成功",Toast.LENGTH_SHORT).show(); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
从上面的代码我们可以看出,我们写了一条String类型的sql语句 创建book这个表单,这个表单包含author id price pages name 这四个字段,然后我们oncreate函数中通过execSQL这个方法来向数据库中添加这张表单
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyDataBase dataBase = new MyDataBase(this,"bookManager.db",null,1); dataBase.getWritableDatabase(); } }
然后我们在MainAcitivity的OnCreate函数 new MyDataBase这个对象 ,然后通过构造函数的参数将数据库名指定为 BookManager.db,版本号指定为 1,然后调用了getWritableDatabase()方法就会检测到当前程序中并没有BookManager.db这个数据库, 于是会创建该数据库并调用 MyDatabaseHelper中的 onCreate()方法,这样 Book 表也就得到了创建,当我们的程序第一次启动后然后就会显示一条toast信息,但是第二次启动的时候就不会显示这条Toast了,
接下来我们看一下启动后的情况
由于我是用的真机进行开发,所以是看不到数据库文件的,所以就不能展示数据库文件了
相关文章推荐
- Android中的ScrollView
- Android文本框实现搜索和清空效果
- Android Dialog的多种对话框整理案例
- 深入理解Android异步消息处理机制
- Android技术成长路线图
- Android简单介绍
- Android12个重要知识点(2)
- AndroidStudio中去掉标题栏的两种方式
- android学习——Android Studio下创建menu布局文件
- Android (SharedPreferences(数据存储之)、Environment(环境)、TextUtils类)方法与理解
- Android12个重要知识点(01)
- android InstallApk
- Android框架
- Android AlarmManager的一些问题
- Android布局自我理解与总结
- FloatingActionButton控件初步使用
- Android 状态栏的控制
- Android AccessibilityService
- 第一篇:android使用阿里云的文件上传下载文件服务
- dp、dpi、pt、sp的关系