HashMap and dynamic JDBC update
Hello,
I have an HashMap<String, Object> used to save names and values of
fields to be updated via JDBC update in a table. The type of data is
variable according to field name , so I'm using Object ... the idea to
produce update query is as follows but I believe there is a better
method to do it.
//START
public void updateQuery(Session session, String table,
HashMap<String,Object> updateH, String condition) throws Throwable{
try{
String sQuery="UPDATE " + table + " SET ";
String keys="";
Iterator iterator = updateH.keySet().iterator
(); //key set
while(iterator.hasNext()) //got the key
and then remove first char,
ie ","
keys= keys + "," + iterator.next() +
"= ?";
PreparedStatement ps = session.connection
().prepareStatement(sQuery
+ keys.substring(1) + " WHERE " + condition);
while(iterator.hasNext()){
Object myObj=updateH.get(iterator.next
());
if(myObj instanceof String){
ps.setString(....
}
else if (myObj.instanceof Date){
ps.setDate(.....
}
//etc also for Double, Integer, ..
}
ps.executeUpdate();
}
catch(Throwable ex){
throw ex;
}
}
//END
Any suggestions ?
Thanks in advance and best regards,
Paul