zoukankan      html  css  js  c++  java
  • 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, "info.db", null,1);
            

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

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



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

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

  • 相关阅读:
    字符串的全排列

    链表
    青蛙跳一格或者两格,n格跳法
    二叉树
    Concurrent实现原理
    sql语句总结 (转) http://blog.csdn.net/fengfeng91/article/details/15029173
    ArrayList实现原理
    java虚拟机 内存分配
    【转】关于Quartus ii无法识别Modelsim路径的问题
  • 原文地址:https://www.cnblogs.com/liangqiyuan/p/5689952.html
Copyright © 2011-2022 走看看