ActiveAndroid (二):如何进行增删改查

上一篇在这:Github开源框架:ActiveAndroid (一)

创建我们自己的数据库模型

创建我们自己的数据库模型是很简单的,只要创建一个有注释域的类,并把它命名为我们要用的名字就可以了。但是有两件事情我们必须要注意:一、你的类必须是Model类的子类,并且使用@Column进行注释。ActiveAndroid 会处理类内的基本数据类型以及和其他表间的关系或者是日期类。二、ActiveAndroid 会在你的表中自动创建一个ID字段。这个字段会自动地递增。

ActiveAndroid将使用类内标准的构造函数去实例化对象。如果你定义了自己的构造函数,你必须再定义一个无参构造函数。源码中有注释能帮助你完成这项工作。

@Table(name = "Items"){Name")public String name;Category")public Category category;public Item() {super();}, Category category) {super();this.name = name;this.category = category;}}在前面的叙述中,我们使用了@Table(name = "Items"){Name")public String name;Category")public Category category;}同样,Categories类可以表明它与许多项目的关系。我们这样做是因为有一个helper的方法。@Table(name = "Categories"){Name")public String name;> items() {return getMany(Item.class, "Category");}}此外,你可以通过在列定义的注释中通过设置index = true对特定的列设置索引。这样会在两列中都创建一个表: @Column(name )public String name;@Column(name )public String category;接下来讲一讲怎么加快程序的启动吧:

ActiveAndroid会翻阅你的所有文件去找到你的Model类。这个过程可能会很慢,如果你有许多的依赖库。为了加快这一进程,你可以在AndroidManifest.xml中显式地指定你的Model类:

<=="com.myapp.model.Item, com.myapp.model.Category" />最后,ActiveAndroid有一些列名是不可以用的,大家使用的时候最好注意一下:ABORTDEFAULTINNERREGEXPACTIONDEFERRABLEINSERTREINDEXADDDEFERREDINSTEADRELEASEAFTERDELETEINTERSECTRENAMEALLDESCINTOREPLACEALTERDETACHISRESTRICTANALYZEDISTINCTISNULLRIGHTANDDROPJOINROLLBACKASEACHKEYROWASCELSELEFTSAVEPOINTATTACHENDLIKESELECTAUTOINCREMENTESCAPELIMITSETBEFOREEXCEPTMATCHTABLEBEGINEXCLUSIVENATURALTEMPBETWEENEXISTSNOTEMPORARYBYEXPLAINNOTTHENCASCADEFAILNOTNULLTOCASEFORNULLTRANSACTIONCASTFOREIGNOFTRIGGERCHECKFROMOFFSETUNIONCOLLATEFULLONUNIQUECOLUMNGLOBORUPDATECOMMITGROUPORDERUSINGCONFLICTHAVINGOUTERVACUUMCONSTRAINTIFPLANVALUESCREATEIGNOREPRAGMAVIEWCROSSIMMEDIATEPRIMARYVIRTUALCURRENT_DATEINQUERYWHENCURRENT_TIMEINDEXRAISEWHERECURRENT_TIMESTAMP INDEXEDRECURSIVEWITHDATABASEINITIALLYREFERENCES WITHOUT对数据库进行增删改查操作相信你现在你已经建立好你的数据库了,那现在就让我们学习一下怎么对数据库的数据进行增删改查的操作吧~

改&增:

要更新数据,只需要创建一个ActiveAndroid Model类的新实例,并将值分配给它的域,调用save()方法,就可以啦。保存方法同样适用于插入和更新记录。下面是一个例子:

();restaurants.name = "Restaurants";restaurants.save();我们再创建一个Item数据,并将它归类到一个目录里:();item.category = restaurants;item.name = "Outback Steakhouse";item.save();或者再添加更多的Item:item ();item.category = restaurants;item.name = "Red Robin";item.save();item ();item.category = restaurants;item.name = "Olive Garden";item.save();接下来给大家讲一下批量插入:

为了要同时插入大量数据,你可以使用transactions。通过调用transactions里的方法能够将整个效率提高100倍左右,,下面是一个例子:

ActiveAndroid.beginTransaction();try {; i++) {();itemi;item.save();}ActiveAndroid.setTransactionSuccessful();}finally {ActiveAndroid.endTransaction();}

在示例中,使用transactions完成上面操作只需要4ms左右,如果我们不使用transactions的话则大概需要4s。

删:

不敢接受失败的人,往往是那些追求完美的人,

ActiveAndroid (二):如何进行增删改查

相关文章:

你感兴趣的文章:

标签云: