没看上篇博客的请查看 XUtil学习之DBUtil(十)
查
(1)findById(Class entityType, Object idValue)
通过ID查询
@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;
}
(2)findFirst(Selector selector)
找出满足selector条件的第一个对象
@SuppressWarnings("unchecked")
public <T> T findFirst(Selector selector) throws DbException {
if (!tableIsExist(selector.getEntityType())) return null;
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, selector.getEntityType(), seq);
findTempCache.put(sql, entity);
return entity;
}
} catch (Throwable e) {
throw new DbException(e);
} finally {
IOUtils.closeQuietly(cursor);
}
}
return null;
}
(3)findFirst(Class entityType)
找出满足对象类型的第一个对象
public <T> T findFirst(Class<T> entityType) throws DbException {
return findFirst(Selector.from(entityType));
}
(4)findAll(Selector selector)
找出满足selector条件的所有对象
@SuppressWarnings("unchecked")
public <T> List<T> findAll(Selector selector) throws DbException {
if (!tableIsExist(selector.getEntityType())) return null;
String sql = selector.toString();
long seq = CursorUtils.FindCacheSequence.getSeq();
findTempCache.setSeq(seq);
Object obj = findTempCache.get(sql);
if (obj != null) {
return (List<T>) obj;
}
List<T> result = new ArrayList<T>();
Cursor cursor = execQuery(sql);
if (cursor != null) {
try {
while (cursor.moveToNext()) {
T entity = (T) CursorUtils.getEntity(this, cursor, selector.getEntityType(), seq);
result.add(entity);
}
findTempCache.put(sql, result);
} catch (Throwable e) {
throw new DbException(e);
} finally {
IOUtils.closeQuietly(cursor);
}
}
return result;
}
(5)findAll(Class entityType)
找出满足对象类型的所有对象
public <T> List<T> findAll(Class<T> entityType) throws DbException {
return findAll(Selector.from(entityType));
}
(6)findDbModelFirst(SqlInfo sqlInfo)
public DbModel findDbModelFirst(SqlInfo sqlInfo) throws DbException {
Cursor cursor = execQuery(sqlInfo);
if (cursor != null) {
try {
if (cursor.moveToNext()) {
return CursorUtils.getDbModel(cursor);
}
} catch (Throwable e) {
throw new DbException(e);
} finally {
IOUtils.closeQuietly(cursor);
}
}
return null;
}
(7)findDbModelFirst(DbModelSelector selector)
public DbModel findDbModelFirst(DbModelSelector selector) throws DbException {
if (!tableIsExist(selector.getEntityType())) return null;
Cursor cursor = execQuery(selector.limit(1).toString());
if (cursor != null) {
try {
if (cursor.moveToNext()) {
return CursorUtils.getDbModel(cursor);
}
} catch (Throwable e) {
throw new DbException(e);
} finally {
IOUtils.closeQuietly(cursor);
}
}
return null;
}
(8)findDbModelAll(SqlInfo sqlInfo)
通过SQL信息查出对象封装成DBModel返回
public List<DbModel> findDbModelAll(SqlInfo sqlInfo) throws DbException {
List<DbModel> dbModelList = new ArrayList<DbModel>();
Cursor cursor = execQuery(sqlInfo);
if (cursor != null) {
try {
while (cursor.moveToNext()) {
dbModelList.add(CursorUtils.getDbModel(cursor));
}
} catch (Throwable e) {
throw new DbException(e);
} finally {
IOUtils.closeQuietly(cursor);
}
}
return dbModelList;
}
(9)findDbModelAll(DbModelSelector selector)
通过selector查出所有对象封装成DBModel返回
public List<DbModel> findDbModelAll(DbModelSelector selector) throws DbException {
if (!tableIsExist(selector.getEntityType())) return null;
List<DbModel> dbModelList = new ArrayList<DbModel>();
Cursor cursor = execQuery(selector.toString());
if (cursor != null) {
try {
while (cursor.moveToNext()) {
dbModelList.add(CursorUtils.getDbModel(cursor));
}
} catch (Throwable e) {
throw new DbException(e);
} finally {
IOUtils.closeQuietly(cursor);
}
}
return dbModelList;
}