ActiveAndroid的简单使用

来源:互联网 发布:mysql 删除一个字段 编辑:程序博客网 时间:2024/06/14 08:07

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的反射机制,反射有个缺点,就是会造成效率不高、耗时较长的现象。当有数据批量操作的时候,会把耗时加长好几倍。所以当遇到业务中有很多的记录要处理的时候,就不推荐大家使用框架了,还是老老实实的写比较靠谱











原创粉丝点击