zoukankan      html  css  js  c++  java
  • 每日日报

    SQLite简介

    亮点:
     ① 轻   轻量级数据库 SQLite和C/S模式的数据库软件不同 体积小 没有服务端客户端 只要一个动态库就可以工作 (Linux下300多K)
     ② 绿   核心引擎本身不依赖第三方的软件,不需要安装 拷贝即可使用
     ③ 单一文件 一个数据库只有一个文件 
     ④ 跨平台  支持多个嵌入式设备
    槽点:
            ① 多线程性能差
            ② 不支持全部的SQL
     
    何时使用数据库保存数据: 当有大量结构相似的数据需要保存 比如 短信 电话本 聊天记录
     

     Android下创建SQLite数据库

        1 核心类

                ① SQLiteOpenHelper
          ② SQLiteDataBase   

      2 使用方法

                  第一步: 创建一个类继承 SQLiteOpenHelper  并实现父类的构造
                
    1. public class MySQLOpenHelper extends SQLiteOpenHelper {
    2. public MySQLOpenHelper(Context context) {
    3. /**第一个参数 上下文
    4. 第二个参数 创建的数据库文件名字
    5. 第三个参数 游标工厂 通过游标工厂可以获得执行查询语句的返回值 Curor
    6. 可以传 null 采用默认的游标工厂
    7. 第四个参数 数据库的版本号 从1开始
    8. **/
    9. super(context, "itheima.db", null, 1);
    10. }
                    第二步  从写onCreate 方法 和onUpgrade 方法
                    第三步  在Activity中 创建MySQLOpenHelper对象( 注意 !!!! 至此并没有创建数据库)
                    第四部  调用 MySQLOpenHelper的getReadableDatabase或getWriteableDatabase方法获取SQLiteDataBase对象
     
    1. public class MainActivity extends Activity {
    2. private SQLiteDatabase db;
    3. @Override
    4. protected void onCreate(Bundle savedInstanceState) {
    5. super.onCreate(savedInstanceState);
    6. setContentView(R.layout.activity_main);
    7. MySQLOpenHelper openHelper = new MySQLOpenHelper(this);
    8. //获取SQLiteDatabase对象 如果数据库不存在则创建 如果存在则打开 如果磁盘空间满则出错
    9. db = openHelper.getWritableDatabase();
    10. //与getWritableDatabase功能类似 但如果磁盘空间满则会返回一个只读的数据库
    11. db = openHelper.getReadableDatabase();
    12. }

     SQLiteOpenHelper的oncreate方法 和 onUpgrade方法

      onCreate方法(必须实现的方法)

            当调用getReadableDatabase或getWriteableDatabase方法 第一次创建数据库的时候会执行这个方法
            作用: 在这个方法中做创建表 和初始化数据的操作
    1. @Override
    2. public void onCreate(SQLiteDatabase db) {
    3. //适合做创建表 初始化数据的操作
    4. db.execSQL("create table info (_id integer primary key autoincrement, name varchar(20),phone varchar(20))");
    5. }
     

          onUpgrade方法(必须实现的方法)

             当调用getReadableDatabase或getWriteableDatabase方法时 如果数据库版本号变大 则会调用这个方法
             作用: 在这个方法中做数据库或表结构修改的操作 比如给表添加字段 或给数据库增加新的表
    1. @Override
    2. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    3. //通过oldVersion 和newVersion 可以判断当前版本号和最新的版本号
    4. //真实开发环境可能会针对不同的数据库版本做不同的操作
    5. db.execSQL("alter table info add age integer");
    6. }

            onDowngrade方法(可选)

               当调用getReadableDatabase或getWriteableDatabase方法时 如果数据库版本号变小 则会调用这个方法
               作用: 处理数据库版本降级的操作 如果不重写这个方法 则默认数据库降级会抛异常
    1. @SuppressLint("NewApi") @Override
    2. public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    3. //处理数据库降级的需求 注意 super.onDowngrade 一定要删掉 否则如果数据库降级依然会抛异常
    4. //super.onDowngrade(db, oldVersion, newVersion);
    5. //一般很少做数据库降级的操作 不一定要实现
    6. }
      注意 :  onCreate onUpgrade 由系统调用 不需要手动调用
  • 相关阅读:
    反汇编测试
    《Unix/Linux系统编程》第五章学习笔记
    Linux学习笔记
    团队作业三
    缓冲区溢出
    ch6信号学习笔记
    ch5(定时器和时钟)学习笔记
    团队作业(四)
    团队作业(三)
    ch4学习笔记
  • 原文地址:https://www.cnblogs.com/zhukaile/p/14376737.html
Copyright © 2011-2022 走看看