<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 -> Build -> Rebuild Project
Build成功后,在主项目<code>build/generated/source/apt/</code>目录下会生成<code>Person_RORM</code>类, 如下:
需要注意的是需要实现的并不是原来的<code>registerAllTableClass()</code>方法,而是<code>registerTableConfigMapper(HashMap<Class, TableConfig> 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>一致.