FlexOrm

Posted love _荣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FlexOrm相关的知识,希望对你有一定的参考价值。

 

一个Orm应该至少提供以下四个主要特性:

1、提供CRUD操作的API。

2、提供一种查询语言,能够直接针对类和属性的查询,比如hibernate提供hql。

3、提供注释元数据。

4、提供事务执行脏数据检查,延迟加载以及其它的优化功能。

在目前所有的Air orm(airdb,airorm,flexorm等)中,目前只有flexorm实现的比较全,基本上1,3,4都实现了,第二个嘛,我看新的版本也模仿hibernate做Criteria的标准化查询。


注意在使用flexorm的项目中,除了将flexorm.swc加在项目的libs中,还要在编译属性的编译参数上加:-keep-as3-metadata+=Table,Id,Column,ManyToOne,OneToMany,ManyToMany,Transient

metadata+=意味着该项目除了使用sdk的metadata外,还增加Table,Id...等元数据。


这些元数据对于我们常用hb的人,应该很熟悉,不一一介绍了。


使用flexOrm参考代码如下:

1、在主应用的script:

protected var entityManager:EntityManager = EntityManager.instance;

protected function application_creationCompleteHandler( event:FlexEvent ):void
{
    var dbFile:File = File.applicationStorageDirectory.resolvePath( "main.db" );
    var sqlConnection:SQLConnection = new SQLConnection();
    sqlConnection.open( dbFile );
    entityManager.sqlConnection = sqlConnection;
}
主要是创建EntityManager,这个类是个单例模式,需要赋值sqlConnection。
protected function savePerson():void
{
    var person:Person= new Person();
    person.firstName = firstNameInput.text;
    person.lastName = lastNameInput.text;
    entityManager.save(person);
}

package
{
    [Bindable]
    [Table( name="Person" )]
    public class Person
    {
        
        [Id]
        public var id:int; 
        [Column( name="first_name" )]
        public var firstName:String;
        [Column( name="last_name" )]
        public var lastName:String;
        
    }
}

文章来源:
来源:http://www.blogjava.net/bjwulin/archive/2010/11/11/337820.html?opt=ad

Air的Orm--FlexOrm

以上是关于FlexOrm的主要内容,如果未能解决你的问题,请参考以下文章