/** * 检测映射表是否建立,没有则建一张新表。 * * @param db * @param tableName * @param column1 * @param column2 * @return */ public void checkOrCreateMappingTable( SQLiteDatabase db, String tableName, String column1, String column2) { // 关键点1:初始化全部数据库表 initAllTablesFromSQLite(db); EntityTable table = TableUtil.getMappingTable(tableName, column1, column2); synchronized (table) { // 关键点2:判断表是否存在,是否需要新加列。 if (!checkExistAndColumns(db, table)) { // 关键点3:新建表并加入表队列 if (createTable(db, table)) { putSqlTableIntoList(table); } } } }