不做浮躁的人
正在行走的人...
posts - 171,  comments - 51,  trackbacks - 0
一个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;
        
    }
}

posted on 2010-11-11 16:51 不做浮躁的人 阅读(1287) 评论(0)  编辑  收藏 所属分类: air

只有注册用户登录后才能发表评论。


网站导航:
 

<2010年11月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(9)

随笔分类(31)

随笔档案(75)

文章分类(1)

文章档案(3)

搜索

  •  

最新评论

阅读排行榜

评论排行榜