zoukankan      html  css  js  c++  java
  • Android SQLite数据库 SQLiteOpenHelper的操作使用

    一.概况

    SQLite是Android内置的一个很小的关系型数据库,Google为Andriod的较大的数据处理提供了SQLite,他在数据存储、管理、维护等各方面都相当出色,功能也非常的强大,SQLite具有独立性、轻量级、隔离性、安全性、跨平台、支持多种语言的优势,SQliteOpenHelper是一个抽象类,所以必须要实现以下的两个方法以及一个构造方法 

    1.构造方法: 

    public ClassName(Context context, String name, CursorFactory factory, int version) 

    参数1:上下文对象(MainActivity.this)、

    参数2:数据库的名称、

    参数3:创建Cursor的工厂类,参数为了可以自定义Cursor创建(ps:一般为null)、

    参数4:数据库的版本

    2.两个回调函数:

    onCreate(SQLiteDatabase db)该方法是当没有数据库存在才会执行

    onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)该方法是数据库存更新才会执行

    3.实现代码如下:

    public class MyDatabaseOpenHelper extends SQLiteOpenHelper {
    
        private static final String db_name = "mydata.db"; // 数据库名称
        private static final int version = 1; // 数据库版本
      
        public MyDatabaseOpenHelper(Context context) {
            super(context, db_name, null, version);
        }
    
        //该方法没有数据库存在才会执行
        public void onCreate(SQLiteDatabase db) {
         //没有数据库打印日记
            Log.i("Log","没有数据库,创建数据库");
         //建表语句
            String sql_message = "create table t_message (id int primary key,userName varchar(50),lastMessage varchar(50),datetime  varchar(50))";
            //执行建表语句
            db.execSQL(sql_message);
        }
    
        //数据库存更新才会执行
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
          Log.i("updateLog","数据库更新了!");
      }
    }

    二.SQLiteDatabase类

    1.Android提供了一个名为SQLiteDatabase的类,它封装了一些操作数据库的API,SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新,一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法

    onCreate(SQLiteDatabase db)创建数据库时调用

    onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion)版本更新时调用

    getReadableDatabase()创建或打开一个只读数据库

    getWritableDatabase()创建或打开一个读写数据库

    2.调用代码如下:

    public class MainActivity extends Activity {
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            MyDatabaseOpenHelper helper = new MyDatabaseOpenHelper(MainActivity.this);
            helper.getWritableDatabase().close();   
        }
    }

    3.SQLiteDatabase相关方法

    getCount()总记录条数
    isFirst()判断是否第一条记录
    isLast()判断是否最后一条记录
    moveToFirst()移动到第一条记录
    moveToLast()移动到最后一条记录
    move(int offset)移动[是指偏移量而不是指移到指定位置]
    moveToNext()移动到吓一条记录
    moveToPrevious()移动到上一条记录
    getColumnIndex(String columnName)获得指定列索引的int类型值

    三.测试SQL语句方法

    运行以上代码后你会发现在data/data/database 目录下有个刚刚生成的mydata.db文件这就是我们的数据库文件

    在我们的SDK目录下的platform-tools文件夹有个sqlite3.exe,打开我们的dos命令台运行它,输入sqlite3 数据库文件的绝对路径便可以打开该数据库进行增删查改的操作

    (ps:没有SDK的,这里我提供一下百度云链接:http://pan.baidu.com/s/1o8m6hNc 密码:zom1)

  • 相关阅读:
    变量的创建和初始化
    HDU 1114 Piggy-Bank (dp)
    HDU 1421 搬寝室 (dp)
    HDU 2059 龟兔赛跑 (dp)
    HDU 2571 命运 (dp)
    HDU 1574 RP问题 (dp)
    HDU 2577 How to Type (字符串处理)
    HDU 1422 重温世界杯 (dp)
    HDU 2191 珍惜现在,感恩生活 (dp)
    HH实习 acm算法部 1689
  • 原文地址:https://www.cnblogs.com/zhaoyucong/p/6113911.html
Copyright © 2011-2022 走看看