当前位置: 首页 > 工具软件 > ActiveAndroid > 使用案例 >

ActiveAndroid的简单使用

宇文鸿畴
2023-12-01

ActiveAndroid简单使用讲解

现在android 主流数据库框架ormlite activeAndroid  greenDao等orm数据库框架的使用,本文主要简单讲解activeAndroid的简单使用讲解,便于大家更好的理解和使用,如有讲解不当之处请予以指出,我们一起探讨。
一:首先就是使用配置
大家首先可以查看activeAndroid的源码地址  https://github.com/pardom/ActiveAndroid 对于使用android studio的用户打大家可以这样配置
repositories {
    mavenCentral()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}

compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
对于还在使用Eclipse开发android 的朋友们,可以换了使用android  studio。哈哈。
    二:项目配置讲解
首先在 AndroidManifest.xml 文件中配置数据库名称和数据库版本号。
<manifest ...>
    <application android:name="com.activeandroid.app.Application" ...>
 
        ...
 
        <meta-data android:name="AA_DB_NAME" android:value="xu.db" />
        <meta-data android:name="AA_DB_VERSION" android:value="1" />
    </application>
</manifest>
接着,在AndroidManifest.xml文件中指定application元素的name为 com.activeandroid.app.Application,如果需要自定义Application,需要让你的Application对象继 承自com.activeandroid.app.Application而不是android.app.Application。如果你需要继承其他库 的Application,则需要在Application中初始化和处理ActiveAndroid。
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ActiveAndroid.initialize(this);
    }
    @Override
    public void onTerminate() {
        super.onTerminate();
        ActiveAndroid.dispose();
    }
}
    三:创建model进行表的创建和使用
创建的模型必须继承Model类,这样你的类名就是你的表名。如果不想使用类名做表名,则可以使用@Table定义表名。@Column用于定义列名。Model类使用无参的构造函数,如果定义自己的构造函数必须定义一个无参的构造函数。案例如下:
@Table(name = "HomepageItem")
public class HomepageItem extends Model {
    @Column(name = "item_id")
    public String id;//id
    @Column(name = "item_name")
    public String name;
    @Column(name = "item_url")
    public String icon;
    @Column(name = "item_flag")
    public String itemFlag;
}

   四;增删改查的使用
1:首先就是单条数据的保存

 HomepageItem item = new HomepageItem();
        item.name = "demo";
        item.save();
2:批量插入
ActiveAndroid.beginTransaction();
try {
        for (int i = 0; i < 100; i++) {
        HomepageItem item = new HomepageItem();
        item.name = "demo"+i ;
        item.save();
        }
        ActiveAndroid.setTransactionSuccessful();
}
finally {
        ActiveAndroid.endTransaction();
}

3:数据更新处理
如果使用的还是当前对象或者遍历拿到当前数据对象的话,那么使用save插入方法,也可以直接更新数据库中表的数据处理。也就是
 HomepageItem homepageItem = new HomepageItem();
        homepageItem.name = "demotwo";
        homepageItem.save();

正规的方式当然是根据条件进行更新数据,
new Update(HomepageItem.class).set("item_id = ?", "demo").where("item_name = ?", "小张");
更新条件下 item_name为小张的item_id更新为demo
4:删除处理操作
   one:调用delete()方法就可以删除一条记录,下面的例子中,通过id加载一个Item对象,并且删除他。
 HomepageItem item = HomepageItem.load(HomepageItem.class, 1);
   two: 通过静态方法删除
HomepageItem.delete(HomepageItem.class, 1);
  threee: 创建调用Delete对象删除
new Delete().from(HomepageItem.class).where("Id = ?", 1).execute();
   four:也可以这样写同上也是创建Delete对象
Delete delete = new Delete();
        HomepageItem.delete(HomepageItem.class, 1);

5:查询处理操作
Select select = new Select();
select.from(HomepageItem.class).execute();
其他复杂查询可以根据where条件查询处理操作,
 new Select().from(HomepageItem.class).as("a")
                .where("Id=1");
ORM框架使用起来确实是很方便的,给我们编码提高了效率,但是也有着致命弊端。前面我们也介绍了ORM的实现的原理是Java的反射机制,反射有个缺点,就是会造成效率不高、耗时较长的现象。当有数据批量操作的时候,会把耗时加长好几倍。所以当遇到业务中有很多的记录要处理的时候,就不推荐大家使用框架了,还是老老实实的写比较靠谱











 类似资料: