	public void execSQL(String sql) {
		db.execSQL(sql);
	}

	public void execSQL(String sql, Object[] bindArgs) {
		db.execSQL(sql, bindArgs);
	}

	public List<$data.srcClassName> query(
			String selection, String[] selectionArgs, String groupBy, String having, String orderBy) {
		List<$data.srcClassName> result =
			new ArrayList<$data.srcClassName>();
		Cursor cursor = null;
		try {
			cursor = db.query("$data.tableName",
				new String[] {
#foreach ($field in $data.fieldList)
					"$field.dbName",
#end
				},
				selection, selectionArgs, groupBy, having, orderBy);
			while (cursor.moveToNext()) {
				result.add(getEntityFromCursor(cursor));
			}
		} finally {
			if (cursor != null) {
				cursor.close();
			}
		}
		return result;
	}

	public List<$data.srcClassName> query() {
		return query(null, null, null, null, "id");
	}

	public long insert($data.srcClassName entity) {
		ContentValues values = getContentValuesForInsert(entity);
		long id = db.insert("$data.tableName", null, values);
		return id;
	}

	public int update($data.srcClassName entity) {
		int count = db.update(
			"$data.tableName",
			getContentValuesForUpdate(entity),
			"id=" + entity.getId(),
			null);
		return count;
	}

	public int delete($data.srcClassName entity) {
		int count = db.delete(
			"$data.tableName",
			"id=" + entity.getId(),
			null);
		return count;
	}
