本文整理了Java中org.greenrobot.greendao.database.Database
类的一些代码示例,展示了Database
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Database
类的具体详情如下:
包路径:org.greenrobot.greendao.database.Database
类名称:Database
[英]Database abstraction used internally by greenDAO.
[中]greenDAO内部使用的数据库抽象。
代码示例来源:origin: greenrobot/greenDAO
/** Drops the underlying database table. */
public static void dropTable(Database db, boolean ifExists) {
String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"ORDER TRANSACTION GROUP BY\"";
db.execSQL(sql);
}
代码示例来源:origin: greenrobot/greenDAO
/**
* Run the given Runnable inside a database transaction. If you except a result, consider callInTx.
*/
public void runInTx(Runnable runnable) {
db.beginTransaction();
try {
runnable.run();
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
代码示例来源:origin: greenrobot/greenDAO
private long executeInsert(T entity, DatabaseStatement stmt, boolean setKeyAndAttach) {
long rowId;
if (db.isDbLockedByCurrentThread()) {
rowId = insertInsideTx(entity, stmt);
} else {
// Do TX to acquire a connection before locking the stmt to avoid deadlocks
db.beginTransaction();
try {
rowId = insertInsideTx(entity, stmt);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
if (setKeyAndAttach) {
updateKeyAfterInsertAndAttach(entity, rowId, true);
}
return rowId;
}
代码示例来源:origin: greenrobot/greenDAO
public T loadByRowId(long rowId) {
String[] idArray = new String[]{Long.toString(rowId)};
Cursor cursor = db.rawQuery(statements.getSelectByRowId(), idArray);
return loadUniqueAndCloseCursor(cursor);
}
代码示例来源:origin: greenrobot/greenDAO
public DatabaseStatement getCountStatement() {
if (countStatement == null) {
String sql = SqlUtils.createSqlCount(tablename);
countStatement = db.compileStatement(sql);
}
return countStatement;
}
代码示例来源:origin: greenrobot/greenDAO
/**
* Deletes all matching entities without detaching them from the identity scope (aka session/cache). Note that this
* method may lead to stale entity objects in the session cache. Stale entities may be returned when loaded by
* their
* primary key, but not using queries.
*/
public void executeDeleteWithoutDetachingEntities() {
checkThread();
Database db = dao.getDatabase();
if (db.isDbLockedByCurrentThread()) {
dao.getDatabase().execSQL(sql, parameters);
} else {
// Do TX to acquire a connection before locking this to avoid deadlocks
// Locking order as described in AbstractDao
db.beginTransaction();
try {
dao.getDatabase().execSQL(sql, parameters);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
}
代码示例来源:origin: greenrobot/greenDAO
/** A raw-style query where you can pass any WHERE clause and arguments. */
public List<RelationSource2> queryDeep(String where, String... selectionArg) {
Cursor cursor = db.rawQuery(getSelectDeep() + where, selectionArg);
return loadDeepAllAndCloseCursor(cursor);
}
代码示例来源:origin: greenrobot/greenDAO
@Override
protected DatabaseStatement initialValue() {
return db.compileStatement("SELECT 42");
}
};
代码示例来源:origin: greenrobot/greenDAO
/** Creates the underlying database table. */
public static void createTable(Database db, boolean ifNotExists) {
String constraint = ifNotExists? "IF NOT EXISTS ": "";
db.execSQL("CREATE TABLE " + constraint + "\"TREE_ENTITY\" (" + //
"\"_id\" INTEGER PRIMARY KEY ," + // 0: id
"\"PARENT_ID\" INTEGER);"); // 1: parentId
}
代码示例来源:origin: greenrobot/greenDAO
/** Deletes an entity with the given PK from the database. Currently, only single value PK entities are supported. */
public void deleteByKey(K key) {
assertSinglePk();
DatabaseStatement stmt = statements.getDeleteStatement();
if (db.isDbLockedByCurrentThread()) {
synchronized (stmt) {
deleteByKeyInsideSynchronized(key, stmt);
}
} else {
// Do TX to acquire a connection before locking the stmt to avoid deadlocks
db.beginTransaction();
try {
synchronized (stmt) {
deleteByKeyInsideSynchronized(key, stmt);
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
if (identityScope != null) {
identityScope.remove(key);
}
}
代码示例来源:origin: greenrobot/greenDAO
/** Loads all available entities from the database. */
public List<T> loadAll() {
Cursor cursor = db.rawQuery(statements.getSelectAll(), null);
return loadAllAndCloseCursor(cursor);
}
代码示例来源:origin: greenrobot/greenDAO
/**
* Calls the given Callable inside a database transaction and returns the result of the Callable. If you don't
* except a result, consider runInTx.
*/
public <V> V callInTx(Callable<V> callable) throws Exception {
db.beginTransaction();
try {
V result = callable.call();
db.setTransactionSuccessful();
return result;
} finally {
db.endTransaction();
}
}
代码示例来源:origin: greenrobot/greenDAO
public DatabaseStatement getDeleteStatement() {
if (deleteStatement == null) {
String sql = SqlUtils.createSqlDelete(tablename, pkColumns);
DatabaseStatement newDeleteStatement = db.compileStatement(sql);
synchronized (this) {
if (deleteStatement == null) {
deleteStatement = newDeleteStatement;
}
}
if (deleteStatement != newDeleteStatement) {
newDeleteStatement.close();
}
}
return deleteStatement;
}
代码示例来源:origin: greenrobot/greenDAO
/** Drops the underlying database table. */
public static void dropTable(Database db, boolean ifExists) {
String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"AUTOINCREMENT_ENTITY\"";
db.execSQL(sql);
}
代码示例来源:origin: greenrobot/greenDAO
public void update(T entity) {
assertSinglePk();
DatabaseStatement stmt = statements.getUpdateStatement();
if (db.isDbLockedByCurrentThread()) {
synchronized (stmt) {
if (isStandardSQLite) {
updateInsideSynchronized(entity, (SQLiteStatement) stmt.getRawStatement(), true);
} else {
updateInsideSynchronized(entity, stmt, true);
}
}
} else {
// Do TX to acquire a connection before locking the stmt to avoid deadlocks
db.beginTransaction();
try {
synchronized (stmt) {
updateInsideSynchronized(entity, stmt, true);
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
}
代码示例来源:origin: greenrobot/greenDAO
/** A raw-style query where you can pass any WHERE clause and arguments. */
public List<TreeEntity> queryDeep(String where, String... selectionArg) {
Cursor cursor = db.rawQuery(getSelectDeep() + where, selectionArg);
return loadDeepAllAndCloseCursor(cursor);
}
代码示例来源:origin: greenrobot/greenDAO
public static int executeSqlStatementsInTx(Database db, String[] statements) {
db.beginTransaction();
try {
int count = executeSqlStatements(db, statements);
db.setTransactionSuccessful();
return count;
} finally {
db.endTransaction();
}
}
代码示例来源:origin: greenrobot/greenDAO
public DatabaseStatement getUpdateStatement() {
if (updateStatement == null) {
String sql = SqlUtils.createSqlUpdate(tablename, allColumns, pkColumns);
DatabaseStatement newUpdateStatement = db.compileStatement(sql);
synchronized (this) {
if (updateStatement == null) {
updateStatement = newUpdateStatement;
}
}
if (updateStatement != newUpdateStatement) {
newUpdateStatement.close();
}
}
return updateStatement;
}
代码示例来源:origin: greenrobot/greenDAO
/** Drops the underlying database table. */
public static void dropTable(Database db, boolean ifExists) {
String sql = "DROP TABLE " + (ifExists ? "IF EXISTS " : "") + "\"ABCDEF_ENTITY\"";
db.execSQL(sql);
}
代码示例来源:origin: greenrobot/greenDAO
/** Executes the query and returns a raw android.database.Cursor. Don't forget to close it. */
public Cursor query() {
checkThread();
return dao.getDatabase().rawQuery(sql, parameters);
}
内容来源于网络,如有侵权,请联系作者删除!