Android快速开发OrmLite数据库封装详解

Android移动开发之数据库——OrmLite详解

随着开源框架的广泛,对于Android开发者越来越有优势,极大的提高了开发效率和开发周期。android系统的sqlite轻量级数据库操作SQL语句较为麻烦,如果不熟悉Web开发的朋友可能对SQL语句还比较陌生。

一、本文可以让你学到的内容:

1.使用第三方框架OrmLite数据库开发Android移动应用程序;
2.不再使用SQL语句实现增删查改,直接一对一传参操作数据库;
3.提高开发周期和效率,剩余时间可以泡吧和泡牛~

二、OrmLite认识:

Ormlite官网: http://ormlite.com/ 开发文档下载(pdf)。 但是是英文文档哦,不要一看到是英文的就害怕了,其实里面单词比较简单,能够看得懂的,多看看英文文档还是挺有帮助的。

三、OrmLite使用:

1.要使用ormlite很简单,只需要下载相应的两个jar包(目前最新的jar包 ormlite-android-4.48.jar,ormlite-core-4.48.jar下载 )并导入工程即可。
2.新建DBOpenHelper:

package com.cb.db;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.cb.model.BaseModel;
import com.cb.model.parameters.Friend;
import com.cb.model.parameters.Group;
import com.cb.model.parameters.User;
import com.cb.util.MyLogger;
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;

import java.sql.SQLException;

public class DBOpenHelper extends OrmLiteSqliteOpenHelper {
   

    public static final int DB_VERSION = 1; // 更新时候只需要修改这里就可以了

    public DBOpenHelper(Context context) {
        super(context, "cdy.db", null, DB_VERSION);
        MyLogger.CLog().e("创建数据库cdy.db");
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase,
            ConnectionSource connectionSource) {
        try {
            TableUtils
                    .createTableIfNotExists(connectionSource, BaseModel.class);
            TableUtils
                    .createTableIfNotExists(connectionSource, User.class);
            TableUtils
                    .createTableIfNotExists(connectionSource, Friend.class);
            TableUtils
                    .createTableIfNotExists(connectionSource, Group.class);
            sqLiteDatabase.setVersion(DB_VERSION);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase,
            ConnectionSource connectionSource, int oldVersion, int newVersion) {
        try {
            updateVersion(connectionSource, oldVersion);
            sqLiteDatabase.setVersion(newVersion);
        } catch (Exception e) {
            MyLogger.CLog().e(e.getMessage(), e);
        }
    }

    /**
     * 数据库表新增字段时使用
     * @param sqLiteDatabase
     * @param oldVersion
     * @throws SQLException
     */
    private void update2Version(SQLiteDatabase sqLiteDatabase,int oldVersion) throws SQLException {
        if(oldVersion < DB_VERSION){
            if (!checkColumnExist(sqLiteDatabase, "friend", "read")) {
                Dao<Friend, String> childOne = getDao(Friend.class);
                childOne.executeRaw("ALTER TABLE 'friend' ADD COLUMN friendName varchar;");
            }
        }
    }


    /**
     * 更新数据库操作:先删除,在创建
     * @param connectionSource
     * @param oldVersion
     */
    private void updateVersion(ConnectionSource connectionSource,int oldVersion) {
        if (oldVersion < DB_VERSION) {
            //删除表
            try {
                TableUtils
                        .dropTable(connectionSource, BaseModel.class, true);
                TableUtils
                        .dropTable(connectionSource, User.class, true);
                TableUtils
           
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值