我的Android之旅(二十四)-------数据库ORMLite框架总结

本文介绍了Android开发中常用的ORM框架ORMLite,它通过Java注解实现数据库映射,操作简便且功能全面。文章讨论了ORMLite的优缺点,包括轻量级、使用简单和文档全面等,并提供了将库文件添加到项目的方法。接着,讲解如何继承OrmLiteSqliteOpenHelper创建数据库帮助类,以及如何定义实体类和数据访问对象。最后,展示了如何进行数据库的增删查改操作,并通过一个简单的Activity实例演示了ORMLite的实际应用。
摘要由CSDN通过智能技术生成


ORMlite通过Java注解的方式来建立起与数据库的映射关系,在Android面向数据库开发中,是一个比较流行的开源框架,方便操作而且功能强大
ORMLite的优缺点
  优点:轻量级、使用简单、封装完善、文档全面

     缺点:基于反射,效率较低,缺少中文翻译文档

添加到项目:

添加库文件到项目libs下,添加为库
       ormlite-android-5.0.jar、ormlite-android-5.0-sources.jar
       ormlite-core-5.0、ormlite-core-5.0-sources.jar

继承OrmLiteSqliteOpenHelper类定义数据库帮助类
       可以在程序被安装时创建或者升级数据库
       onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource)
      onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion)


下面就是帮助类,可直接粘贴复制:

package com.jerehedu.jereduch10.ormlistdemo;

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

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;
import java.util.HashMap;
import java.util.Map;

public  class DatabaseHelper extends OrmLiteSqliteOpenHelper {
    private static final String TABLE_NAME = "ormtest.db";
    private Map<String, Dao> daos = new HashMap<String, Dao>();
    private static DatabaseHelper instance;
    private DatabaseHelper(Context context) {
        super(context, TABLE_NAME, null, 1);
    }
    @Override  
    public void onCreate(SQLiteDatabase database,  
            ConnectionSource connectionSource) {
        try {
            TableUtils.createTable(connectionSource, User1.class);
            // TableUtils.createTable(connectionSource, News.class);
            //如果有多个表,都在这里创建
        } catch (SQLException e) {
            e.printStackTrace();  
        }  
    }
    @Override  
    public void onUpgrade(SQLiteDatabase database,  
            ConnectionSource connectionSource, int oldVersion, int newVersion) {
        try {
            TableUtils.dropTable(connectionSource, User1.class, true);
            onCreate(database, connectionSource);  
        } catch (SQLException e) {
            e.printStackTrace();  
        }  
    }
    /** 
     * 单例获取该Helper 
     *  
     * @param context 
     * @return 
     */  
    public static synchronized DatabaseHelper getHelper(Context context) {
        context = context.getApplicationContext();  
        if (instance == null) {
            synchronized (DatabaseHelper.class) {
                if (instance == null)  {
                    instance = new DatabaseHelper(context);
                }
            }  
        }
        return instance;  
    }
    public synchronized Dao getDao(Class clazz) throws SQLException {
        Dao dao = null;  
        String className = clazz.getSimpleName();
        if (daos.containsKey(cla
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值