importjava.util.Iterator;importjava.util.Set;importjava.util.Map.Entry;importcom.google.gson.JsonArray;importcom.google.gson.JsonElement;importcom.google.gson.JsonObject;importcom.google.gson.JsonParser;public classSql
{public staticString parseSQL(String json)
{
JsonParser parser= newJsonParser();
JsonObject obj=(JsonObject) parser.parse(json);;
String table= obj.get("table").getAsString();
String op_type= obj.get("op_type").getAsString();
String sql= "";if("I".equals(op_type))
{
sql+= "INSERT INTO " + table + " (";
JsonObject after= (JsonObject) obj.get("after");
Set> entry =after.entrySet();
Iterator> it =entry.iterator();
String vs= " values (";while(it.hasNext())
{
Entry elem =it.next();
String key=elem.getKey();
String val=elem.getValue().toString();
sql+= key + ", ";
vs+= val + ", ";
}
sql= sql.replaceAll(",\\s*$", "");
vs= vs.replaceAll(",\\s*$", "");
sql+= ") " + vs + ")";
}else if("U".equals(op_type))
{
sql+= "UPDATE " + table + " SET ";
JsonObject after= (JsonObject) obj.get("after");
Set> entry =after.entrySet();
Iterator> it =entry.iterator();while(it.hasNext())
{
Entry elem =it.next();
String key=elem.getKey();
String val=elem.getValue().toString();
sql+= key + "=" + val + ", ";
}
sql= sql.replaceAll(",\\s*$", "");
sql+= " WHERE ";
after= (JsonObject) obj.get("before");
entry=after.entrySet();
it=entry.iterator();while(it.hasNext())
{
Entry elem =it.next();
String key=elem.getKey();
String val=elem.getValue().toString();
sql+= key + "=" + val + " AND ";
}
sql= sql.replaceAll("\\s*AND\\s*$", "");
}else if("D".equals(op_type))
{
sql+= "DELETE FROM " + table + " WHERE ";
JsonObject after= (JsonObject) obj.get("before");
Set> entry =after.entrySet();
Iterator> it =entry.iterator();while(it.hasNext())
{
Entry elem =it.next();
String key=elem.getKey();
String val=elem.getValue().toString();
sql+= key + "=" + val + " AND ";
}
sql= sql.replaceAll("\\s*AND\\s*$", "");
}returnsql;
}