Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.uzsi.actionimplementation;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.apache.commons.lang.StringEscapeUtils;
- import com.uzsi.actioninterface.IActionGeneralUpdate;
- public class ActionGeneralUpdate implements IActionGeneralUpdate {
- private String table;
- private List<Map<String, Object>> fields = new ArrayList<Map<String, Object>>();
- private List<Map<String, Object>> keys = new ArrayList<Map<String, Object>>();
- private String _ = "`"; // MySQL
- private List<Integer> insertIds = new ArrayList<Integer>();
- @Override
- public void addKey(String key, String operator, Object value) {
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("key", key);
- map.put("operator", operator);
- map.put("value", value);
- keys.add(map);
- }
- @Override
- public void addField(String field, Object value) {
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("field", field);
- map.put("value", value);
- fields.add(map);
- }
- @Override
- public List<Integer> getInsertIds() {
- return insertIds;
- }
- @Override
- public void setInsertIds(List<Integer> insertIds) {
- this.insertIds=insertIds;
- }
- @Override
- public eActionType getActionType() {
- return eActionType.UPDATE;
- }
- @Override
- public String getQueryString() {
- // TODO
- String q = "UPDATE ";
- q += " " + _+table+_ + " SET ";
- for (int i=0;i<fields.size();++i) {
- String field = (String) fields.get(i).get("field");
- Object value = fields.get(i).get("value");
- q += " " + _ + field + _ + " = ";
- if (value instanceof String)
- q += " '" + StringEscapeUtils.escapeSql((String) value) + "' ";
- else
- q += " " + value + " ";
- q += ((i+1<keys.size()) ? ", " : " ");
- }
- q += " WHERE ";
- for (int i=0;i<keys.size();++i) {
- Map<String, Object> map = keys.get(i);
- String key = (String) map.get("key");
- String operator = (String) map.get("operator");
- Object value = map.get("value");
- q += " " + _ + key + _ + operator;
- if (value instanceof String)
- q += "'" + StringEscapeUtils.escapeSql((String) value) + "'";
- else if (value instanceof java.util.Date)
- q += " '" + new java.sql.Timestamp(((java.util.Date) value).getTime()) + "' ";
- else // TODO test and more
- q += map.get("value");
- if ((i+1) < keys.size())
- q += " AND ";
- }
- q += ";";
- return q;
- }
- @Override
- public void setTable(String table) {
- this.table = table;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement