• 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)

  • 相关阅读:
    java下Mysql基本操作
    利用CNN进行多分类的文档分类
    对WEB url 发送POST请求
    Linq转换操作之OfType,Cast,AsEnumerable,ToLookup源码分析
    Linq转换操作之ToArray,ToList,ToDictionary源码分析
    Linq基础必备
    var 在linq中的使用
    Linq的使用场景简介和认识
    replaceState 实现返回从新定位
    ReSharper
  • 原文地址:https://www.cnblogs.com/zhaoyucong/p/6113911.html
Copyright © 2020-2023  润新知