List of usage examples for org.springframework.jdbc.support.rowset SqlRowSet getBoolean
boolean getBoolean(String columnLabel) throws InvalidResultSetAccessException;
From source file:ru.org.linux.poll.PollDao.java
/** * ? ./*from w w w .jav a 2s.c o m*/ * * @param pollId ?? * @return ? * @throws PollNotFoundException ? ? ?? */ public Poll getPoll(final int pollId) throws PollNotFoundException { int currentPollId = getCurrentPollId(); SqlRowSet rs = jdbcTemplate.queryForRowSet(queryPool, pollId); if (!rs.next()) { throw new PollNotFoundException(); } return new Poll(pollId, rs.getInt("topic"), rs.getBoolean("multiselect"), pollId == currentPollId, getVoteDTO(pollId)); }
From source file:ru.org.linux.group.TopicsListItem.java
public TopicsListItem(User author, SqlRowSet rs, int messagesInPage, ImmutableList<String> tags) { this.author = author; this.tags = tags; subj = StringUtil.makeTitle(rs.getString("subj")); Timestamp lastmod = rs.getTimestamp("lastmod"); if (lastmod == null) { this.lastmod = new Timestamp(0); } else {/*from w ww . j a v a2s . co m*/ this.lastmod = lastmod; } msgid = rs.getInt("msgid"); deleted = rs.getBoolean("deleted"); stat1 = rs.getInt("stat1"); stat3 = rs.getInt("stat3"); stat4 = rs.getInt("stat4"); sticky = rs.getBoolean("sticky"); resolved = rs.getBoolean("resolved"); pages = Topic.getPageCount(stat1, messagesInPage); }
From source file:com.emc.ecs.sync.service.SqliteDbServiceTest.java
@Test public void testRowInsert() throws Exception { // test with various parameters and verify result Date now = new Date(); byte[] data = "Hello World!".getBytes("UTF-8"); String id = "1"; dbService.setStatus(new TestSyncObject(null, id, id, new byte[] {}, null), ObjectStatus.InTransfer, null, true);//from w w w. j ava 2s . c o m SqlRowSet rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertNull(rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(0, rowSet.getInt("size")); Assert.assertEquals(0, rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.InTransfer.getValue(), rowSet.getString("status")); Assert.assertNotEquals(0, rowSet.getLong("transfer_start")); Assert.assertEquals(0, rowSet.getLong("transfer_complete")); Assert.assertEquals(0, rowSet.getLong("verify_start")); Assert.assertEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(0, rowSet.getInt("retry_count")); Assert.assertNull(rowSet.getString("error_message")); // double check that dates are represented accurately // the transfer_start date should be less than a second later than the start of this method Assert.assertTrue(rowSet.getLong("transfer_start") - now.getTime() < 1000); try { dbService.setStatus(new TestSyncObject(null, "2", "2", new byte[] {}, null), null, null, true); Assert.fail("status should be required"); } catch (NullPointerException e) { // expected } id = "3"; TestSyncObject object = new TestSyncObject(null, id, id, null, new ArrayList<TestSyncObject>()); object.getMetadata().setModificationTime(now); object.incFailureCount(); dbService.setStatus(object, ObjectStatus.Verified, "foo", true); rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertNull(rowSet.getString("target_id")); Assert.assertTrue(rowSet.getBoolean("is_directory")); Assert.assertEquals(0, rowSet.getInt("size")); Assert.assertEquals(now.getTime(), rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.Verified.getValue(), rowSet.getString("status")); Assert.assertEquals(0, rowSet.getLong("transfer_start")); Assert.assertEquals(0, rowSet.getLong("transfer_complete")); Assert.assertEquals(0, rowSet.getLong("verify_start")); Assert.assertNotEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(1, rowSet.getInt("retry_count")); Assert.assertEquals("foo", rowSet.getString("error_message")); id = "4"; object = new TestSyncObject(null, id, id, data, null); dbService.setStatus(object, ObjectStatus.Transferred, null, true); rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertNull(rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(data.length, rowSet.getInt("size")); Assert.assertEquals(0, rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.Transferred.getValue(), rowSet.getString("status")); Assert.assertEquals(0, rowSet.getLong("transfer_start")); Assert.assertNotEquals(0, rowSet.getLong("transfer_complete")); Assert.assertEquals(0, rowSet.getLong("verify_start")); Assert.assertEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(0, rowSet.getInt("retry_count")); Assert.assertNull(rowSet.getString("error_message")); id = "5"; object = new TestSyncObject(null, id, id, data, null); dbService.setStatus(object, ObjectStatus.InVerification, null, true); rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertNull(rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(data.length, rowSet.getInt("size")); Assert.assertEquals(0, rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.InVerification.getValue(), rowSet.getString("status")); Assert.assertEquals(0, rowSet.getLong("transfer_start")); Assert.assertEquals(0, rowSet.getLong("transfer_complete")); Assert.assertNotEquals(0, rowSet.getLong("verify_start")); Assert.assertEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(0, rowSet.getInt("retry_count")); Assert.assertNull(rowSet.getString("error_message")); id = "6"; object = new TestSyncObject(null, id, id, data, null); dbService.setStatus(object, ObjectStatus.RetryQueue, "blah", true); rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertNull(rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(data.length, rowSet.getInt("size")); Assert.assertEquals(0, rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.RetryQueue.getValue(), rowSet.getString("status")); Assert.assertEquals(0, rowSet.getLong("transfer_start")); Assert.assertEquals(0, rowSet.getLong("transfer_complete")); Assert.assertEquals(0, rowSet.getLong("verify_start")); Assert.assertEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(0, rowSet.getInt("retry_count")); Assert.assertEquals("blah", rowSet.getString("error_message")); id = "7"; object = new TestSyncObject(null, id, id, data, null); dbService.setStatus(object, ObjectStatus.Error, "blah", true); rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertNull(rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(data.length, rowSet.getInt("size")); Assert.assertEquals(0, rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.Error.getValue(), rowSet.getString("status")); Assert.assertEquals(0, rowSet.getLong("transfer_start")); Assert.assertEquals(0, rowSet.getLong("transfer_complete")); Assert.assertEquals(0, rowSet.getLong("verify_start")); Assert.assertEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(0, rowSet.getInt("retry_count")); Assert.assertEquals("blah", rowSet.getString("error_message")); }
From source file:com.emc.ecs.sync.service.SqliteDbServiceTest.java
@Test public void testRowUpdate() throws Exception { byte[] data = "Hello World!".getBytes("UTF-8"); String id = "1"; Date now = new Date(); TestSyncObject object = new TestSyncObject(null, id, id, data, null); object.setTargetIdentifier(id);//from w ww.ja v a2 s . co m object.getMetadata().setModificationTime(now); dbService.setStatus(object, ObjectStatus.InTransfer, null, true); SqlRowSet rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertEquals(id, rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(data.length, rowSet.getInt("size")); Assert.assertEquals(now.getTime(), rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.InTransfer.getValue(), rowSet.getString("status")); Assert.assertNotEquals(0, rowSet.getLong("transfer_start")); Assert.assertEquals(0, rowSet.getLong("transfer_complete")); Assert.assertEquals(0, rowSet.getLong("verify_start")); Assert.assertEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(0, rowSet.getInt("retry_count")); Assert.assertNull(rowSet.getString("error_message")); String error = "ouch"; dbService.setStatus(object, ObjectStatus.RetryQueue, error, false); object.incFailureCount(); rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertEquals(id, rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(data.length, rowSet.getInt("size")); Assert.assertEquals(now.getTime(), rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.RetryQueue.getValue(), rowSet.getString("status")); Assert.assertNotEquals(0, rowSet.getLong("transfer_start")); Assert.assertEquals(0, rowSet.getLong("transfer_complete")); Assert.assertEquals(0, rowSet.getLong("verify_start")); Assert.assertEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(0, rowSet.getInt("retry_count")); Assert.assertEquals(error, rowSet.getString("error_message")); dbService.setStatus(object, ObjectStatus.InTransfer, null, false); rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertEquals(id, rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(data.length, rowSet.getInt("size")); Assert.assertEquals(now.getTime(), rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.InTransfer.getValue(), rowSet.getString("status")); Assert.assertNotEquals(0, rowSet.getLong("transfer_start")); Assert.assertEquals(0, rowSet.getLong("transfer_complete")); Assert.assertEquals(0, rowSet.getLong("verify_start")); Assert.assertEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(1, rowSet.getInt("retry_count")); Assert.assertEquals(error, rowSet.getString("error_message")); dbService.setStatus(object, ObjectStatus.Transferred, null, false); rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertEquals(id, rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(data.length, rowSet.getInt("size")); Assert.assertEquals(now.getTime(), rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.Transferred.getValue(), rowSet.getString("status")); Assert.assertNotEquals(0, rowSet.getLong("transfer_start")); Assert.assertNotEquals(0, rowSet.getLong("transfer_complete")); Assert.assertEquals(0, rowSet.getLong("verify_start")); Assert.assertEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(1, rowSet.getInt("retry_count")); Assert.assertEquals(error, rowSet.getString("error_message")); dbService.setStatus(object, ObjectStatus.InVerification, null, false); rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertEquals(id, rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(data.length, rowSet.getInt("size")); Assert.assertEquals(now.getTime(), rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.InVerification.getValue(), rowSet.getString("status")); Assert.assertNotEquals(0, rowSet.getLong("transfer_start")); Assert.assertNotEquals(0, rowSet.getLong("transfer_complete")); Assert.assertNotEquals(0, rowSet.getLong("verify_start")); Assert.assertEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(1, rowSet.getInt("retry_count")); Assert.assertEquals(error, rowSet.getString("error_message")); dbService.setStatus(object, ObjectStatus.Verified, null, false); rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertEquals(id, rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(data.length, rowSet.getInt("size")); Assert.assertEquals(now.getTime(), rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.Verified.getValue(), rowSet.getString("status")); Assert.assertNotEquals(0, rowSet.getLong("transfer_start")); Assert.assertNotEquals(0, rowSet.getLong("transfer_complete")); Assert.assertNotEquals(0, rowSet.getLong("verify_start")); Assert.assertNotEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(1, rowSet.getInt("retry_count")); Assert.assertEquals(error, rowSet.getString("error_message")); dbService.setStatus(object, ObjectStatus.Error, error, false); rowSet = getRowSet(id); Assert.assertEquals(id, rowSet.getString("source_id")); Assert.assertEquals(id, rowSet.getString("target_id")); Assert.assertFalse(rowSet.getBoolean("is_directory")); Assert.assertEquals(data.length, rowSet.getInt("size")); Assert.assertEquals(now.getTime(), rowSet.getLong("mtime")); Assert.assertEquals(ObjectStatus.Error.getValue(), rowSet.getString("status")); Assert.assertNotEquals(0, rowSet.getLong("transfer_start")); Assert.assertNotEquals(0, rowSet.getLong("transfer_complete")); Assert.assertNotEquals(0, rowSet.getLong("verify_start")); Assert.assertEquals(0, rowSet.getLong("verify_complete")); Assert.assertEquals(1, rowSet.getInt("retry_count")); Assert.assertEquals(error, rowSet.getString("error_message")); }
From source file:no.dusken.barweb.plugin.duskeninternplugin.admin.ImportPersonController.java
public ModelAndView doImport() { Map<String, String> map = new HashMap<String, String>(); if (isImporting) { log.error("import already running"); map.put("message", "Import already running"); return new ModelAndView(view, map); } else {//w ww. j a v a 2s . c om isImporting = true; } JdbcTemplate jt = getJdbcTemplate(); jt.setFetchSize(100); Gjeng g = gjengService.getByName("Under dusken"); if (g == null) { g = new Gjeng(); g.setDefaultGjeng(true); g.setName("Under dusken"); gjengService.saveAndFlush(g); } // importing persons SqlRowSet medarbeidere = jt.queryForRowSet("SELECT * FROM medarbeidere"); while (medarbeidere.next()) { Long externalID = Long.parseLong(medarbeidere.getString("medarb_ref")); String username = medarbeidere.getString("brukernavn"); if (username == null || username.equals("")) { continue; } // use username instead of external id BarPerson p = barPersonService.getByUsername(username); if (p == null) { p = new BarPerson(); p.setExternalID(externalID); p.setUsername(username); p.setFirstname(medarbeidere.getString("fornavn")); p.setSurname(medarbeidere.getString("etternavn")); p.setActive(medarbeidere.getBoolean("aktiv")); p.setEmailAddress(username + "@underdusken.no"); p.setMoney(medarbeidere.getInt("saldo")); p.setExternalSource("db_web"); p.setExternalID(externalID); p.setGjeng(g); p = barPersonService.save(p); } log.info("Imported BarPerson: " + p.toString()); } return new ModelAndView(view, map); }
From source file:com.emc.ecs.sync.EndToEndTest.java
protected long verifyDbObjects(JdbcTemplate jdbcTemplate, List<TestSyncObject> objects) { Date now = new Date(); long count = 0; for (TestSyncObject object : objects) { count++;// w w w .java 2s .c o m SqlRowSet rowSet = jdbcTemplate.queryForRowSet( "SELECT * FROM " + DbService.DEFAULT_OBJECTS_TABLE_NAME + " WHERE target_id=?", object.getSourceIdentifier()); Assert.assertTrue(rowSet.next()); Assert.assertEquals(object.getSourceIdentifier(), rowSet.getString("target_id")); Assert.assertEquals(object.isDirectory(), rowSet.getBoolean("is_directory")); Assert.assertEquals(object.getMetadata().getContentLength(), rowSet.getLong("size")); // mtime in the DB is actually pulled from the target system, so we don't know what precision it will be in // or if the target system's clock is in sync, but let's assume it will always be within 5 minutes Assert.assertTrue( Math.abs(object.getMetadata().getModificationTime().getTime() - rowSet.getLong("mtime")) < 5 * 60 * 1000); Assert.assertEquals(ObjectStatus.Verified.getValue(), rowSet.getString("status")); Assert.assertTrue(now.getTime() - rowSet.getLong("transfer_start") < 10 * 60 * 1000); // less than 10 minutes ago Assert.assertTrue(now.getTime() - rowSet.getLong("transfer_complete") < 10 * 60 * 1000); // less than 10 minutes ago Assert.assertTrue(now.getTime() - rowSet.getLong("verify_start") < 10 * 60 * 1000); // less than 10 minutes ago Assert.assertTrue(now.getTime() - rowSet.getLong("verify_complete") < 10 * 60 * 1000); // less than 10 minutes ago Assert.assertEquals(object.getFailureCount(), rowSet.getInt("retry_count")); if (object.getFailureCount() > 0) { String error = rowSet.getString("error_message"); Assert.assertNotNull(error); log.warn("{} was retried {} time{}; error: {}", object.getRelativePath(), object.getFailureCount(), object.getFailureCount() > 1 ? "s" : "", error); } if (object.isDirectory()) count += verifyDbObjects(jdbcTemplate, object.getChildren()); } return count; }
From source file:ru.org.linux.tracker.TrackerDao.java
public List<TrackerItem> getTrackAll(TrackerFilterEnum filter, User currentUser, Timestamp interval, int topics, int offset, final int messagesInPage) { MapSqlParameterSource parameter = new MapSqlParameterSource(); parameter.addValue("interval", interval); parameter.addValue("topics", topics); parameter.addValue("offset", offset); String partIgnored;/*from ww w .j a va 2 s.c o m*/ if (currentUser != null) { partIgnored = queryPartIgnored + queryPartTagIgnored; parameter.addValue("userid", currentUser.getId()); } else { partIgnored = ""; } String partFilter; String partWiki = queryPartWiki; switch (filter) { case ALL: partFilter = ""; break; case NOTALKS: partFilter = queryPartNoTalks; break; case TECH: partFilter = queryPartTech; break; case MINE: if (currentUser != null) { partFilter = queryPartMine; partWiki = queryPartWikiMine; } else { partFilter = ""; } break; default: partFilter = ""; } boolean showUncommited = currentUser != null && (currentUser.isModerator() || currentUser.isCorrector()); String partUncommited = showUncommited ? "" : noUncommited; String query; if (filter != TrackerFilterEnum.ZERO) { query = String.format(queryTrackerMain, partUncommited, partIgnored, partFilter, partUncommited, partIgnored, partFilter, partWiki); } else { query = String.format(queryTrackerZeroMain, partIgnored); } SqlRowSet resultSet = jdbcTemplate.queryForRowSet(query, parameter); List<TrackerItem> res = new ArrayList<>(topics); while (resultSet.next()) { User author; try { int author_id = resultSet.getInt("author"); if (author_id != 0) { author = userDao.getUserCached(author_id); } else { author = null; } } catch (UserNotFoundException e) { throw new RuntimeException(e); } int msgid = resultSet.getInt("id"); Timestamp lastmod = resultSet.getTimestamp("lastmod"); int stat1 = resultSet.getInt("stat1"); int groupId = resultSet.getInt("gid"); String groupTitle = resultSet.getString("gtitle"); String title = resultSet.getString("title"); int cid = resultSet.getInt("cid"); User lastCommentBy; try { int id = resultSet.getInt("last_comment_by"); if (id != 0) { lastCommentBy = userDao.getUserCached(id); } else { lastCommentBy = null; } } catch (UserNotFoundException e) { throw new RuntimeException(e); } boolean resolved = resultSet.getBoolean("resolved"); int section = resultSet.getInt("section"); String groupUrlName = resultSet.getString("urlname"); Timestamp postdate = resultSet.getTimestamp("postdate"); boolean uncommited = resultSet.getBoolean("smod") && !resultSet.getBoolean("moderate"); int pages = Topic.getPageCount(stat1, messagesInPage); ImmutableList<String> tags; if (msgid != 0) { tags = topicTagService.getMessageTagsForTitle(msgid); } else { tags = ImmutableList.of(); } res.add(new TrackerItem(author, msgid, lastmod, stat1, groupId, groupTitle, title, cid, lastCommentBy, resolved, section, groupUrlName, postdate, uncommited, pages, tags)); } return res; }
From source file:com.ardhi.businessgame.services.BusinessGameService.java
public String activateDeactivateInstallment(HttpServletRequest req) { String val = ""; boolean active; SqlRowSet srs = db.getJdbc() .queryForRowSet("select active from installment where id='" + req.getParameter("id") + "'"); if (srs.next()) active = !srs.getBoolean("active"); else// www . j a v a 2s . c o m return "0"; db.getJdbc().execute("update installment set active='" + (active ? 1 : 0) + "' where id='" + req.getParameter("id") + "'"); val = gson.toJson(active); srs = null; return val; }
From source file:com.ardhi.businessgame.services.BusinessGameService.java
public String loadUserData(HttpServletRequest req) { String val = ""; SqlRowSet srs = db.getJdbc() .queryForRowSet("select id,sender,message,unread from user_message where recipient='" + req.getParameter("user") + "'"); ArrayList<String> data = new ArrayList<String>(); ArrayList<Message> messages = new ArrayList<Message>(); while (srs.next()) { messages.add(new Message(srs.getString("id"), srs.getString("sender"), srs.getString("message"), (srs.getBoolean("unread")))); }//from w w w. j a v a2 s. c o m data.add(gson.toJson(messages)); val = gson.toJson(data); messages = null; data = null; gc(); return val; }
From source file:com.ardhi.businessgame.services.BusinessGameService.java
private Installment getSingleUserInstallments(String id) { String hiElement = ""; double hiVal = 0, tmpd1, tmpd2; int eff;/* w w w .j a va 2s. co m*/ SqlRowSet srs1 = db.getJdbc().queryForRowSet( "select [zone],type,draw,active from installment,info_sector where id='" + id + "' and name=type"), srs2, srs3; HashMap<String, Double> elementsRatio = new HashMap<String, Double>(), elements = new HashMap<String, Double>(), elementsCalc = new HashMap<String, Double>(); Installment installment = null; boolean pass = false; if (srs1.next()) { hiElement = ""; hiVal = 0; elementsRatio.clear(); elements.clear(); elementsCalc.clear(); pass = true; srs2 = db.getJdbc() .queryForRowSet("select equipment_type,items from info_sector_equipment where sector='" + srs1.getString("type") + "'"); while (srs2.next()) { elementsRatio.put(srs2.getString("equipment_type"), srs2.getDouble("items")); if (hiVal < srs2.getDouble("items")) { hiElement = srs2.getString("equipment_type"); hiVal = srs2.getDouble("items"); } srs3 = db.getJdbc().queryForRowSet( "select count(installment_equipment.id) from installment_equipment,list_equipment,desc_equipment where installment='" + id + "' and desc_equipment.equipment='" + srs2.getString("equipment_type") + "' and installment_equipment.id=list_equipment.id and list_equipment.[desc]=desc_equipment.id"); srs3.next(); elements.put(srs2.getString("equipment_type"), srs3.getDouble(1)); } srs2 = db.getJdbc().queryForRowSet("select employee_type,items from info_sector_employee where sector='" + srs1.getString("type") + "'"); while (srs2.next()) { elementsRatio.put(srs2.getString("employee_type"), srs2.getDouble("items")); if (hiVal < srs2.getDouble("items")) { hiElement = srs2.getString("employee_type"); hiVal = srs2.getDouble("items"); } srs3 = db.getJdbc().queryForRowSet( "select count(installment_employee.id) from installment_employee,list_employee,desc_employee where installment='" + id + "' and desc_employee.employee='" + srs2.getString("employee_type") + "' and installment_employee.id=list_employee.id and list_employee.[desc]=desc_employee.id"); srs3.next(); elements.put(srs2.getString("employee_type"), srs3.getDouble(1)); } //calculating: while (true) { for (String element : elementsRatio.keySet()) { if (element.equals(hiElement)) { elementsCalc.put(element, elements.get(element)); } else { elementsCalc.put(element, (elementsRatio.get(element) * elements.get(hiElement)) / elementsRatio.get(hiElement)); } } for (String element : elements.keySet()) { if (elements.get(element) < elementsCalc.get(element)) { pass = false; hiElement = element; hiVal = elements.get(element); break; } else { pass = true; } } if (pass) { eff = elements.get(hiElement).intValue() / elementsRatio.get(hiElement).intValue(); if (elements.get(hiElement) % elementsRatio.get(hiElement) > 0) { hiVal = (elementsRatio.get(hiElement) * (eff + 1)); if (hiVal > 0) tmpd1 = new BigDecimal(Double.valueOf( elementsCalc.get(hiElement) / (elementsRatio.get(hiElement) * (eff + 1)))) .setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); else tmpd1 = 0; tmpd2 = eff + 1; } else { hiVal = (elementsRatio.get(hiElement) * eff); if (hiVal > 0) tmpd1 = new BigDecimal(Double .valueOf(elementsCalc.get(hiElement) / (elementsRatio.get(hiElement) * eff))) .setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); else tmpd1 = 0; tmpd2 = eff; } installment = new Installment(id, srs1.getString("type"), srs1.getString("zone"), tmpd1, tmpd2, srs1.getString("draw"), srs1.getBoolean("active")); break; } } } hiElement = null; srs1 = null; srs2 = null; srs3 = null; elements = null; elementsCalc = null; elementsRatio = null; gc(); return installment; }