天天看点

[Android]Android端ORM框架——RapidORM(v2.0)天天_byconan[Android]Android端ORM框架——RapidORM(v2.0)[Android]Android端ORM框架——RapidORM(v2.0)

[Android]Android端ORM框架——RapidORM(v2.0)天天_byconan[Android]Android端ORM框架——RapidORM(v2.0)[Android]Android端ORM框架——RapidORM(v2.0)

<a href="http://www.cnblogs.com/">博客园</a>

<a href="http://www.cnblogs.com/tiantianbyconan/">首页</a>

<a href="https://i.cnblogs.com/EditPosts.aspx?opt=1">新随笔</a>

<a href="https://msg.cnblogs.com/send/%E5%A4%A9%E5%A4%A9_byconan">联系</a>

<a href="https://i.cnblogs.com/">管理</a>

随笔- 137  文章- 6  评论- 145 

以下内容为原创,欢迎转载,转载请注明

<code>v1.0</code>版本支持使用反射和非反射(模版生成)两种方式实现执行SQL。

其中默认为反射实现,对性能有一定的影响。

而如果要采用非反射实现,则需要使用RapidORM提供的模版工具类手动生成相关的帮助类,当数据表需要修改时,必须要手动手动生成帮助类,有潜在的风险。

非反射时生成的文件是通过<code>getter/setter</code>方法调用的,但是<code>getter/setter</code>方法名可能会不一致,导致需要手动调整<code>setter/getter</code>方法名称。

相比较于<code>v1.0</code>版本,<code>v2.0</code>版本则更加侧重于非反射操作,所有默认都是非反射的。

通过在编译时期根据<code>@Table</code>、<code>@Column</code>等注解自动生成辅助类<code>Xxx_RORM.java</code>文件,RapidORM库会使用这些生成的辅助类来进行数据表的初始化、执行SQL等操作,如果数据表有结构有改动,则会自动重新生成或者<code>rebuild</code>来手动生成。

与<code>v1.0</code>相同部分省略。

注意,v2.0版本不支持变量为<code>private</code>类型,这是为了避免使用<code>getter/setter</code>方法来进行数据绑定。如果变量为<code>private</code>类型,则编译会报错,如下:

Android Studio -&gt; Build -&gt; Rebuild Project

Build成功后,在主项目<code>build/generated/source/apt/</code>目录下会生成<code>Person_RORM</code>类, 如下:

需要注意的是需要实现的并不是原来的<code>registerAllTableClass()</code>方法,而是<code>registerTableConfigMapper(HashMap&lt;Class, TableConfig&gt; tableConfigMapper)</code>方法:

注意:注册<code>Person</code>时,需要连带生成的<code>Person_RORM</code>同时注册。

构建Builder时与<code>v1.0</code>的方式一致,但是可以直接使用<code>Person_RORM</code>中的static变量来作为column name:

PersonDaoImpl:

与<code>v1.0</code>一致.