
本文实例讲述了AndroID编程之数据库的创建方法。分享给大家供大家参考,具体如下:
主java
package com.itheima.createdatabase;import androID.app.Activity;import androID.content.Context;import androID.database.sqlite.sqliteDatabase;import androID.os.Bundle;public class MainActivity extends Activity { private Context mContext; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); mContext = this; //创建一个帮助类对象 MysqLiteOpenHelper MysqLiteOpenHelper = new MysqLiteOpenHelper(mContext); //调用getReadableDatabase方法,来初始化数据库的创建 sqliteDatabase db = MysqLiteOpenHelper.getReadableDatabase(); }}同一目录下创建一个类继承于数据库
package com.itheima.createdatabase;import androID.content.Context;import androID.database.sqlite.sqliteDatabase;import androID.database.sqlite.sqliteDatabase.CursorFactory;import androID.database.sqlite.sqliteOpenHelper;public class MysqLiteOpenHelper extends sqliteOpenHelper { public MysqLiteOpenHelper(Context context) { //context :上下文 , name:数据库文件的名称 factory:用来创建cursor对象,默认为null //version:数据库的版本号,从1开始,如果发生改变,onUpgrade方法将会调用,4.0之后只能升不能将 super(context,"info.db",null,1); } //oncreate方法是数据库第一次创建的时候会被调用; 特别适合做表结构的初始化,需要执行SQL语句;sqliteDatabase db可以用来执行SQL语句 @OverrIDe public voID onCreate(sqliteDatabase db) { //通过sqliteDatabase执行一个创建表的SQL语句 db.execsql("create table info (_ID integer primary key autoincrement,name varchar(20))"); } //onUpgrade数据库版本号发生改变时才会执行; 特别适合做表结构的修改 @OverrIDe public voID onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) { //添加一个phone字段 db.execsql("alter table info add phone varchar(11)"); }}笔记:
什么情况下我们才用数据库做数据存储? 大量数据结构相同的数据需要存储时。
MysqL sqlserver2000 sqlite 嵌入式 轻量级
sqliteOpenHelper
创建数据库步骤:
1.创建一个类继承sqliteOpenHelper,需要添加一个构造方法,实现两个方法oncreate,onupgrade
构造方法中的参数介绍:
context :上下文 , name:数据库文件的名称 factory:用来创建cursor对象,默认为null
version:数据库的版本号,从1开始,如果发生改变,onUpgrade方法将会调用,4.0之后只能升不能降
super(context,1);
2.创建这个帮助类的一个对象,调用getReadableDatabase()方法,会帮助我们创建打开一个数据库
3.复写oncreate和onupGrdate方法:
oncreate方法是数据库第一次创建的时候会被调用; 特别适合做表结构的初始化,需要执行SQL语句;sqliteDatabase db可以用来执行SQL语句
onUpgrade数据库版本号发生改变时才会执行; 特别适合做表结构的修改
帮助类对象中的getWritableDatabase 和 getReadableDatabase都可以帮助我们获取一个数据库 *** 作对象sqliteDatabase.
区别:
getReadableDatabase:
先尝试以读写方式打开数据库,如果磁盘空间满了,他会重新尝试以只读方式打开数据库。
getWritableDatabase:
直接以读写方式打开数据库,如果磁盘空间满了,就直接报错。
更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android *** 作SQLite数据库技巧总结》、《Android数据库 *** 作技巧总结》、《Android编程之activity *** 作技巧总结》、《Android文件 *** 作技巧汇总》、《Android开发入门与进阶教程》、《Android资源 *** 作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家AndroID程序设计有所帮助。
总结以上是内存溢出为你收集整理的Android编程之数据库的创建方法详解全部内容,希望文章能够帮你解决Android编程之数据库的创建方法详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)