Import
Java.util.HashMap;
Import
Java.util.Map;
Import
Java.util.Map.Entry;
Public
class Sqlstringparsedemo {
Public Static void Main (string[] args) {
String
SQL = "SELECT {a.*},{b.*},{c.*} from TableA A,tableb b,tablec C" ;
Key:a, Value:tablea A
Map<string, string>
m = New HashMap () ;
relevantaliastable (
m , SQL );
printaliastable (
m );
}
Private Static void printaliastable (map<string, string> m) {
for (entry<string, string> obj : M.entryset ()) {
System.
out . println (obj. GetKey () + "" + obj. GetValue ());
}
}
Private Static void relevantaliastable (map<string, string> m, String sql) {
String[]
Elementselect = getelement(sql);
String[]
Tablealiasfrom = Gettablealias(sql);
Putelementstomap (
m , Elementselect );
Puttablealiastomap (
m , Tablealiasfrom );
}
p Rivate static void Puttablealiastomap (map<string, string> m tablealiasfrom
for (String obj:tablealiasfrom) {
String[]
arr = obj .split ( "
m . Put ("{"+arr[1]+]. * " +"} ", obj);
}
}
Private Static void Putelementstomap (map<string, string> m, string[] elementselect ) {
for (String obj : elementselect) {
//
M.put (obj, "");
// }
//
System.out.println (m);
}
Private Static string[] Gettablealias (String sql) {
i NT Beginindexoftablealias = sql .indexof ( "from" ) + "from" .length () + 1;
int Endindexoftablealias = SQL . Length ();
String
Tablealias = SQL . substring (beginindexoftablealias, endindexoftablealias). Trim ();
String[]
arr = Tablealias . Split (",");
return arr ;
}
p Rivate static string[] GetElement (String sql
i NT Beginindexofelement = .length () + 1;
int endindexofelement = SQL . IndexOf ("from");
String
Tablealias = SQL . substring (beginindexofelement, endindexofelement). Trim ();
String[]
arr1 = Tablealias . Split (",");
return arr1 ;
}
}
SQL statement Correspondence Relationship display