主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, "info.db", null,1);

2.创建这个帮助类的一个对象,调用getReadableDatabase()方法,会帮助我们创建打开一个数据库

3.复写oncreate和onupgrdate方法:
        oncreate方法是数据库第一次创建的时候会被调用;  特别适合做表结构的初始化,需要执行sql语句;SQLiteDatabase db可以用来执行sql语句
        
        //onUpgrade数据库版本号发生改变时才会执行; 特别适合做表结构的修改

帮助类对象中的getWritableDatabase 和 getReadableDatabase都可以帮助我们获取一个数据库操作对象SqliteDatabase.

区别:
    getReadableDatabase:
        先尝试以读写方式打开数据库,如果磁盘空间满了,他会重新尝试以只读方式打开数据库。
    getWritableDatabase:
        直接以读写方式打开数据库,如果磁盘空间满了,就直接报错。

最新文章

  1. 重温JSP学习笔记--JSTL标签库
  2. Jmeter增加压力机方法
  3. vi/vim 的使用
  4. Centos5.8 安装 PHP5.5 和 memcached
  5. C语言中的指针和内存泄漏
  6. php 今天 昨天 明天 时间戳
  7. iOS - OC 异常处理
  8. Python语言初学总结
  9. Objective-C 编码规范
  10. ks全自动安装centos
  11. How to install cacti With Nginx
  12. app视觉设计艺术(读书笔记)
  13. RefernceError : jQuery is not define
  14. php数组的使用
  15. commonjs,amd,cmd
  16. Unity5中新的Shader体系简析
  17. IPhone手机页面中点击文本输入框,弹出键盘,网页会放大,如何解决
  18. 基础邮件原理(MUA,MTA,MDA)
  19. WiFi 干扰器,有时间可以去试试呦!
  20. AutoCad2012新增类AcRxVariablesDictionary 可以获取所有变量名和值

热门文章

  1. Don't Repeat Yourself (不要重复你自己)
  2. android常见错误-E/AndroidRuntime(13678): java.lang.NoClassDefFoundError:
  3. MySQL安装详解(V5.5 For Windows)
  4. Codeforces Round #331 (Div. 2) E. Wilbur and Strings dfs乱搞
  5. Codeforces GYM 100114 C. Sequence 打表
  6. .net简单录音和播放音频文件代码
  7. 【工作记录】android手势事件操作记录
  8. 使用maven命令建立java项目
  9. C++中的inline函数
  10. mydumper原理3