Android 数据库—ORMlite 框架详情

这篇博客详细介绍了ORMlite框架,一个用于简化Android数据库操作的轻量级库。内容包括ORMlite的概念、使用ORMlite的优点和缺点,以及如何通过注解建立对象与数据库表的映射关系。此外,还提供了创建数据库帮助类、定义Bean的DAO以及执行数据库的增删改查操作的示例。
摘要由CSDN通过智能技术生成

前言

本篇博客记录一下笔者在实际开发中使用到的一个数据库框架,这个可以让我们快速实现数据库操作,避免频繁手写sql,提高我们的开发效率,减少出错的机率。

ORMlite是什么?

它的英文全称是Object Relational Mapping,意思是对象关系映射;是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。

面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的. 两者之间是不匹配的.而ORM作为项目中间件形式实现数据在不同场景下数据关系映射. 对象关系映射是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.ORM就是这样而来的。

基于注解和反射的的方式,导致ormlite性能有着一定的损失(注解其实也是利用了反射的原理)

为什么要用ormlite?

优点:
1. 轻量级
2. 使用简单,易上手
3. 封装完善
4. 文档全面
缺点

1.基于反射,效率较低
2.缺少中文翻译文档

ORMlite的使用

建立映射关系
Ormlite与数据库的映射关系式通过注释来说明的。
注释分为对于表的和对于单个列的:@DatabaseTable ,注释表的, @DatabaseField 注释单个列的。
首先注释:table,@DatabaseTable 如果默认为类名的话,后面不需要添加类名注释。
然后:确定需要的字段,在字段上面添加注释:@DatabaseField 如果对字段有特别的要求,那么添加以下相关的注释,例如id

DatabaseTable(tableName = "school")  
public class School {  
    @DatabaseField(generatedId=true)  
    private int id;  
    public int getId() {  
        return id;  
    }  

    public void setId(int id) {  
        this.id = id;  
    }      

下面通过注解的方式配置该类的持久化参数:

1.表名:

@DatabaseTable(tableName=”dataTableName”)
不指定的话表名就是类名。

2.字段
@DatabaseField
这个可以配置的属性有点多。
2.1 主键

< class=”brush:java;gutter:false;”>@DatabaseField(id=true)
2.2 列名

< class=”brush:java;gutter:false;”>@DatabaseField(columnName=”columnName”)
不指定的话就是和变量名一样的

2.3 数据类型

< class=”brush:java;gutter:false;”>@DatabaseField(dataType=DataType.INTEGER)
这个一般情况下都不用指定,可以根据java 类获得

2.4 默认值

< class=”brush:java;gutter:false;”>@DatabaseField(defaultValue=”0”)
2.5 长度

< class=”brush:java;gutter:false;”>@DatabaseField(width=13)
一般用于String型

2.6 能否为空

< class=”brush:java;gutter:false;”>@DatabaseField(canBeNull=false)
默认为True

2.7 是否自增长

< class=”brush:java;gutter:false;”>@DatabaseField(generatedId=true)
这是一些比较简单的,关于外键啥的下篇文章再说吧。

继承OrmLiteSqliteOpenHelper类定义数据库帮助类

在Android的开发中,google原版封装了一个SqliteOpenHelper,供开发者调用,在OrmLite中,对原版的工具进行了加强,提供一个继承自SqliteOpenHelper的OrmLiteSqliteOpenHelper工具。

public class MySqlOpenHelper extends OrmLiteSqliteOpenHelper {
   

    private Dao<Person, Integer> mPersonDao;
       //初始化表,创建表名,版本,游标工厂
    public MySqlOpenHelper(Context context) {
        super(context, "test", null, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值