Skip to content

daoPutLookup

tarimshahab edited this page May 22, 2015 · 3 revisions

Related DAO Code

void updateLookup(String app, String lookup, HashMap<String,HashMap<String,String>> jsonHashMap,
            ArrayList<LookupPair> filter) throws Exception{
        StringBuilder filterWhereClause = new StringBuilder();
        if(filter != null)
        {
            for(LookupPair lp : filter)
            {
                if(!lp.right.equals(""))
                    filterWhereClause.append(" where ").append(lp.left).append(" = '").append(lp.right).append("'");
            }
        }
        
        connect();
        useApp(app);
        conn.setAutoCommit(false);
        
        ResultSet rs=st.executeQuery("select max("+lookup+"Key) from lkup_"+lookup);  
        int maxLkupKey = 1;
        if(rs.next())
        {
            maxLkupKey = rs.getInt(1)+1;
        }
        
        List<String> updateSql = createUpdateValues(jsonHashMap, lookup);
        List<String> insertSql = createInsertValues(jsonHashMap, lookup, maxLkupKey);
        
        String sql = "update lkup_"+lookup+" set "+lookup+"Order = -1 "+filterWhereClause.toString(); // Delete all old values
        st.execute(sql);
        
        sql = "update lkup_"+lookup+" set "; // update all existing values
        for(String values : updateSql)
        {
            st.execute(sql+values);
        }
        sql = "insert into lkup_"+lookup+" "; // insert new values
        for(String values : insertSql)
        {
            st.execute(sql+values);
        }
        
        conn.commit();
        conn.setAutoCommit(true);
        disconnect();
    }
Clone this wiki locally