Model类和数据库的关联

一、DataSupport
这个类是类和数据库表的桥梁。使用起来简直是无缝的映射。
你可以这么写:
 * public class Person extends DataSupport {
 *     private int id;
 *     private String name;
 *     private int age;
 * }
在此之前你可能是这么写:
 * CREATE TABLE person (
 *     id integer primary key autoincrement,
 *     age integer,
 *     name text
 * );
哪个代码更加的舒服呢?不言而喻。
这里提供了许多数据库操作的方法,方便开发者直接调用。
  • ClusterQuery select(String... columns)
  • ClusterQuery where(String... conditions)
  • ClusterQuery order(String column)
  • ClusterQuery limit( int value)
  • ClusterQuery offset( int value)
  • int count(Class<?> modelClass)
  • int count(String tableName)
  • double average(Class<?> modelClass, String column)
  • double average(String tableName, String column)
  • <T> T max(Class<?> modelClass, String columnName, Class<T> columnType)
  • <T> T max(String tableName, String columnName, Class<T> columnType)
  • <T> T min(Class<?> modelClassString columnName, Class<T> columnType)
  • <T> T min(String tableName, String columnName, Class<T> columnType)
  • <T> T sum(Class<?> modelClass, String columnName, Class<T> columnType)
  • <T> T sum(String tableName, String columnName, Class<T> columnType)
  • <T> T find(Class<T> modelClass, long id)
  • <T> T find(Class<T> modelClass, long id,  boolean isEager)
  • <T> T findFirst(Class<T> modelClass)
  • <T> T findFirst(Class<T> modelClass, boolean isEager)
  • <T> T findLast(Class<T> modelClass)
  • <T> T findLast(Class<T> modelClass, boolean isEager)
  • <T> List<T> findAll(Class<T> modelClass, long... ids)
  • <T> List<T> findAll(Class<T> modelClass, boolean isEager, long... ids)
  • Cursor findBySQL(String... sql)
  • int delete(Class<?> modelClass, long id)
  • int deleteAll(Class<?> modelClass, String... conditions)
  • int deleteAll(String tableName, String... conditions)
  • int update(Class<?> modelClass, ContentValues values, long id)
  • int updateAll(Class<?> modelClass, ContentValues values, String... conditions)
  • int updateAll(String tableName, ContentValues values, String... conditions)
  • <T extends DataSupport> void saveAll(Collection<T> collection)
  • int delete()
  • int update(long id)
  • int updateAll(String... conditions)
  • boolean save()
  • save(final ICallBack callback)
  • void saveThrows()

二、DynamicExecutor
现在有个问题,LitePal如何获取到Model类属性的值呢?这里显然要用到反射机制。这个DynamicExecutor提供一个send方法运行动态的调用方法。

Object send(Object object, String methodName, Object[] parameters,
                     Class<?> objectClass, Class<?>[] parameterTypes)
        * @param object
        *            The object to invoke method.
        * @param methodName
        *            The method name to invoke.
        * @param parameters
        *            The parameters.
        * @param objectClass
        *            Use objectClass to find method to invoke.
        * @param parameterTypes
        *            The parameter types.
        * @return Returns the result of dynamically invoking method.

void setField(Object object, String fieldName, Object value,
                     Class<?> objectClass)
通过反射机制设置属性的值。

Object getField(Object object, String fieldName, Class<?> objectClass)
通过反射机制获取属性的值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值