zoukankan      html  css  js  c++  java
  • 【数据存储】SQLite数据库存储(1)

    SQLite是一个轻量级的、嵌入式、关系型数据库,是遵守ACID的关联式数据库管理系统,其主要的是针对于嵌入式设备专门设计的数据库,由于其本身占用的存储控件较小,所以目前已经在Android操作系统之中广泛的使用着,而在SQLite数据库之中可以方便的使用SQL语句实现数据的增删改查等操作,最近版本为SQLite3. 

     

    在学习JDBC的时候,如果想取得数据库的操作对象,那么肯定需要有一个数据库的连接对象,这个在JDBC之中使用Connection接口表示。  

     

        在Android上进行开发时,一般不用SQLiteDatabase类对象,往往会由一个辅助的工具类SQLiteOpenHelper进行操作的管理。

     

     

    ※ SQLiteDatabase类本身只有一个数据库的操作类,但是如果要想进行数据库的操作,还需要一个android.database.sqlite.SQLiteOpenHelper类帮助下才可以取得进行,但是,SQLiteOpenHelper类是一个抽象类,所以要使用的时候需要定义其子类,并且在子类中要覆写相应的抽象方法。

     

     

    SQLiteOpenHelper类定义的方法

     

     

     

    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    public class MyDatabaseHelper extends SQLiteOpenHelper {
        private static final String DATABASENAME = "mldn.db" ;
        // 设置数据库的版本
        private static final int DATABASERVERSION = 2 ;    
        private static final String TABLENAME = "mytab" ;
        // 用户最关心的也肯定只是Context
        public MyDatabaseHelper(Context context) {    
            super(context, DATABASENAME, null, DATABASERVERSION);
        }
        /**
         * 创建数据表
         * 在SQLite中设置为Integer、PRIMARY KEY则ID自动增长
         */
        @Override
        public void onCreate(SQLiteDatabase db) {      
            String sql = "CREATE TABLE " + TABLENAME + "("
                    + "id        INTEGER            PRIMARY KEY ,"     
                    + "name     VARCHAR(50)     NOT NULL ,"
                    + "birthday DATE NOT         NULL" + ")";
            db.execSQL(sql) ;    // 执行SQL
            System.out.println("创建:onCreate()。");
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, 
          int newVersion) {
            String sql = "DROP TABLE IF EXISTS " + TABLENAME ;
            db.execSQL(sql) ;
            System.out.println(" 更新:onUpgrade()。");
            this.onCreate(db) ;
        }
    }
    View Code
    import android.app.Activity;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.os.Bundle;
    public class MySQLiteDemo extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            super.setContentView(R.layout.main);
            SQLiteOpenHelper  helper = new MyDatabaseHelper(this) ;
            // 以写的方式打开数据库
            helper.getWritableDatabase() ;    
        }
    }
    View Code

    在MyDatabaseHelper类中回调方法onCreate()只有在使用了SQLiteOpenHelper类中的getReadableDatabase()方法之后才会执行。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    c# 移动winform窗体
    C# 通过反射动态创建对象的方法
    C# listView用法
    C# PropertyGrid总结
    C# 静态或动态调用C++动态链接库dll
    C# 加载C++创建的动态链接库dll
    C# 动态加载dll(.net)示例
    C# 关于泛型
    C# 中的指针使用
    C/S与B/S的区别
  • 原文地址:https://www.cnblogs.com/androidsj/p/3129418.html
Copyright © 2011-2022 走看看