import java.util.ArrayList;
import java.util.HashMap;
public class StringCompare
{
public static void main(String args[])
{
String[] orginColumnName = new String[] { "author_id", "name",
"sort_key" };
HashMap<String, String> sqlSentenceHashMap = new HashMap<String, String>();
sqlSentenceHashMap.put("author_id", "author_id INTEGER PRIMARY KEY");
sqlSentenceHashMap.put("name", "name TEXT NOT NULL");
sqlSentenceHashMap.put("sort_key", "sort_key TEXT NOT NULL");
alterTable("Author", orginColumnName, sqlSentenceHashMap);
}
private static void alterTable(String tableName, String[] orginColumnName,
HashMap<String, String> sqlSentenceHashMap)
{
String[] dataColumnName = new String[] { "" };
ArrayList<String> differColumnName = getDiffColumnName(orginColumnName,
dataColumnName);
int arrayList_Length = differColumnName.size();
if (arrayList_Length > 0)
{
String alterString = "";
for (int i = 0; i < arrayList_Length; i++)
{
if ((i + 1) != arrayList_Length)
alterString += (" "
+ sqlSentenceHashMap.get(differColumnName.get(i)) + ",");
else
alterString += (" " + sqlSentenceHashMap
.get(differColumnName.get(i)));
}
System.out.println("ALTER TABLE Authors ADD COLUMN " + alterString);
}
}
private static ArrayList<String> getDiffColumnName(String[] orginName,
String[] dataName)
{
ArrayList<String> diffNameArrayList = new ArrayList<String>();
for (int i = 0; i < orginName.length; i++)
{
boolean flag = false;
for (int j = 0; j < dataName.length && !flag; j++)
{
if (orginName[i].equals(dataName[j]))
{
flag = true;
}
else
{
flag = false;
}
}
if (!flag)
{
diffNameArrayList.add(orginName[i]);
}
}
return diffNameArrayList;
}
}
在Android中,数据库可能要添加某个字段,但是又不想Drop某个表.
于是就出现遍历检测,添加字段的一个功能函数出来........................
(备份以后用)