Search in sources :

Example 6 with Table

use of com.lidroid.xutils.db.table.Table in project xUtils by wyouflf.

the class DbUtils method findById.

@SuppressWarnings("unchecked")
public <T> T findById(Class<T> entityType, Object idValue) throws DbException {
    if (!tableIsExist(entityType))
        return null;
    Table table = Table.get(this, entityType);
    Selector selector = Selector.from(entityType).where(table.id.getColumnName(), "=", idValue);
    String sql = selector.limit(1).toString();
    long seq = CursorUtils.FindCacheSequence.getSeq();
    findTempCache.setSeq(seq);
    Object obj = findTempCache.get(sql);
    if (obj != null) {
        return (T) obj;
    }
    Cursor cursor = execQuery(sql);
    if (cursor != null) {
        try {
            if (cursor.moveToNext()) {
                T entity = (T) CursorUtils.getEntity(this, cursor, entityType, seq);
                findTempCache.put(sql, entity);
                return entity;
            }
        } catch (Throwable e) {
            throw new DbException(e);
        } finally {
            IOUtils.closeQuietly(cursor);
        }
    }
    return null;
}
Also used : Table(com.lidroid.xutils.db.table.Table) Cursor(android.database.Cursor) DbException(com.lidroid.xutils.exception.DbException)

Example 7 with Table

use of com.lidroid.xutils.db.table.Table in project xUtils by wyouflf.

the class DbUtils method saveOrUpdateWithoutTransaction.

//***************************** private operations with out transaction *****************************
private void saveOrUpdateWithoutTransaction(Object entity) throws DbException {
    Table table = Table.get(this, entity.getClass());
    Id id = table.id;
    if (id.isAutoIncrement()) {
        if (id.getColumnValue(entity) != null) {
            execNonQuery(SqlInfoBuilder.buildUpdateSqlInfo(this, entity));
        } else {
            saveBindingIdWithoutTransaction(entity);
        }
    } else {
        execNonQuery(SqlInfoBuilder.buildReplaceSqlInfo(this, entity));
    }
}
Also used : Table(com.lidroid.xutils.db.table.Table) Id(com.lidroid.xutils.db.table.Id)

Example 8 with Table

use of com.lidroid.xutils.db.table.Table in project xUtils by wyouflf.

the class DbUtils method tableIsExist.

public boolean tableIsExist(Class<?> entityType) throws DbException {
    Table table = Table.get(this, entityType);
    if (table.isCheckedDatabase()) {
        return true;
    }
    Cursor cursor = execQuery("SELECT COUNT(*) AS c FROM sqlite_master WHERE type='table' AND name='" + table.tableName + "'");
    if (cursor != null) {
        try {
            if (cursor.moveToNext()) {
                int count = cursor.getInt(0);
                if (count > 0) {
                    table.setCheckedDatabase(true);
                    return true;
                }
            }
        } catch (Throwable e) {
            throw new DbException(e);
        } finally {
            IOUtils.closeQuietly(cursor);
        }
    }
    return false;
}
Also used : Table(com.lidroid.xutils.db.table.Table) Cursor(android.database.Cursor) DbException(com.lidroid.xutils.exception.DbException)

Example 9 with Table

use of com.lidroid.xutils.db.table.Table in project xUtils by wyouflf.

the class ForeignLazyLoader method getFirstFromDb.

public T getFirstFromDb() throws DbException {
    T entity = null;
    Table table = foreignColumn.getTable();
    if (table != null) {
        entity = table.db.findFirst(Selector.from(foreignColumn.getForeignEntityType()).where(foreignColumn.getForeignColumnName(), "=", columnValue));
    }
    return entity;
}
Also used : Table(com.lidroid.xutils.db.table.Table)

Aggregations

Table (com.lidroid.xutils.db.table.Table)9 Cursor (android.database.Cursor)2 Id (com.lidroid.xutils.db.table.Id)2 DbException (com.lidroid.xutils.exception.DbException)2