進口?Java . util . set;
進口?Java . util . map . entry;
進口?com . Google . gson . JSON array;
進口?com . Google . gson . JSON element;
進口?com . Google . gson . JSON object;
進口?com . Google . gson . JSON parser;
公共?班級?結構化查詢語言
{
公共?靜電?字符串?parseSQL(字符串?json)
{
JsonParser?解析器?=?新的?JSON parser();
JsonObject?obj?=?(JsonObject)?parser . parse(JSON);;
字符串?桌子?=?obj.get("table ")。getAsString();
字符串?op_type?=?obj.get("op_type ")。getAsString();
字符串?sql?=?"";
如果(“我”。equals(op_type))
{
sql?+=?“插入?成嗎?”?+?桌子?+?"?(";
JsonObject?之後?=?(JsonObject)?obj.get("之後");
設置& ltEntry & lt字符串,?JsonElement & gt& gt?入門?=?after . entry set();
叠代器& ltEntry & lt字符串,?JsonElement & gt& gt?它?=?entry . iterator();
字符串?vs?=?"?價值觀?(";
while(it.hasNext())
{
Entry & lt字符串,?JsonElement & gt?elem?=?it . next();
字符串?鑰匙?=?elem . getkey();
字符串?瓦爾。=?elem.getValue()。toString();
sql?+=?鑰匙?+?",?";
vs?+=?瓦爾。+?",?";
}
sql?=?sql.replaceAll(",\\s*$ ",?"");
vs?=?vs.replaceAll(",\\s*$ ",?"");
sql?+=?")?"?+?vs?+?")";
}
不然呢?if("U "。equals(op_type))
{
sql?+=?“更新?”?+?桌子?+?"?設置?”;
JsonObject?之後?=?(JsonObject)?obj.get("之後");
設置& ltEntry & lt字符串,?JsonElement & gt& gt?入門?=?after . entry set();
叠代器& ltEntry & lt字符串,?JsonElement & gt& gt?它?=?entry . iterator();
while(it.hasNext())
{
Entry & lt字符串,?JsonElement & gt?elem?=?it . next();
字符串?鑰匙?=?elem . getkey();
字符串?瓦爾。=?elem.getValue()。toString();
sql?+=?鑰匙?+?"="?+?瓦爾。+?",?";
}
sql?=?sql.replaceAll(",\\s*$ ",?"");
sql?+=?"?哪裏?”;
之後?=?(JsonObject)?obj.get("之前");
入門?=?after . entry set();
它?=?entry . iterator();
while(it.hasNext())
{
Entry & lt字符串,?JsonElement & gt?elem?=?it . next();
字符串?鑰匙?=?elem . getkey();
字符串?瓦爾。=?elem.getValue()。toString();
sql?+=?鑰匙?+?"="?+?瓦爾。+?"?然後呢?”;
}
sql?=?SQL . replace all(" \ \ s *和\\s*$ ",?"");
}
不然呢?if("D "。equals(op_type))
{
sql?+=?“刪除?從哪裏?”?+?桌子?+?"?哪裏?”;
JsonObject?之後?=?(JsonObject)?obj.get("之前");
設置& ltEntry & lt字符串,?JsonElement & gt& gt?入門?=?after . entry set();
叠代器& ltEntry & lt字符串,?JsonElement & gt& gt?它?=?entry . iterator();
while(it.hasNext())
{
Entry & lt字符串,?JsonElement & gt?elem?=?it . next();
字符串?鑰匙?=?elem . getkey();
字符串?瓦爾。=?elem.getValue()。toString();
sql?+=?鑰匙?+?"="?+?瓦爾。+?"?然後呢?”;
}
sql?=?SQL . replace all(" \ \ s *和\\s*$ ",?"");
}
回歸?sql
}
公共?靜電?作廢?main(String[]?參數)
{
字符串?插入?=
" {\ "表\":\"GG。TCUSTORD\ ",\"op_type\":\"I\ ",\"op_ts\":\"2013-06-02?22:14:36.0000000 \ ",\ " current _ ts \ ":\ " 2015-09-18t 13:39:35.447000 \ ",\ " pos \ ":\ " 0000000000001444 \ ",\ " tokens \ ":{ \ " R \ ":\ " aadpkvaaeaaeql 2 a
字符串?更新?=
" {\ "表\":\"GG。TCUSTORD\ ",\"op_type\":\"U\ ",\"op_ts\":\"2013-06-02?22:14:41.000000\ ",\ " current _ ts \ ":\ " 2015-09-18t 13:39:35.748000 \ ",\ " pos \ ":\ " 0000000000000002891 \ ",\ " tokens \ ":{ \ " L \ ":\ " 2000
字符串?刪除?=
" {\ "表\":\"GG。TCUSTORD\ ",\"op_type\":\"D\ ",\"op_ts\":\"2013-06-02?22:14:41.0000000 \ ",\ " current _ ts \ ":\ " 2015-09-18t 13:39:35.766000 \ ",\ " pos \ ":\ " 00000000000000004338 \ ",\ " tokens \ ":{ \ " L \ ":\ " 2060804558
system . out . println(parse SQL(insert));
system . out . println(parse SQL(update));
system . out . println(parse SQL(delete));
}
}