/******************************************************************************* * Copyright (c) 2015 hangum. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html * * Contributors: * hangum - initial API and implementation ******************************************************************************/ package com.hangum.tadpole.commons.util; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.util.List; import java.util.Map; import com.hangum.tadpole.commons.libs.core.define.HTMLDefine; /** * ResultSet Util * * @author hyunjongcho * */ public class ResultSetToHTMLUtil { /** * make html head * * @param strHead * @return */ public static String makeHTMLHead(String strHead) { StringBuffer sb = new StringBuffer(); sb.append("<table class='tg'><tr>"); sb.append(String.format(HTMLDefine.SINGLE_TH, strHead)); sb.append("</tr></table>"); return sb.toString(); } /** * make ResultSet to html * * @param strTitle * @param rs * @param limit * @return * @throws Exception */ public static String makeResultSetTOHTML(ResultSet rs, int limit) throws Exception { StringBuffer sb = new StringBuffer(); int rowCount = 0; sb.append("<table class='tg'>"); ResultSetMetaData rsmd = rs.getMetaData(); int columnCount = rsmd.getColumnCount(); // table header sb.append("<tr>"); for (int i = 0; i < columnCount; i++) { sb.append(String.format(HTMLDefine.TH, rsmd.getColumnLabel(i + 1))); } sb.append("</tr>"); // the data while (rs.next()) { rowCount++; sb.append("<tr>"); for (int i = 0; i < columnCount; i++) { sb.append(String.format(HTMLDefine.TD, rs.getString(i + 1))); } sb.append("</tr>"); if(limit <= rowCount) break; } sb.append("</table>"); return sb.toString(); } /** * QueryExecuteResultDTO 의 결과를 출력한다. * ps) QueryExecuteResultDTO를 바로 넘기지 못하는 이유는 클래스 패스 설정에 문제가 있어서 이다.- hangum * * @param columnLabelName * @param data * @param limit */ public static String makeResultSetToHTML(Map<Integer, String> columnLabelName, List<Map<Integer, Object>> data, int limit) { StringBuffer sb = new StringBuffer(); int rowCount = 0; sb.append("<table class='tg'>"); // table header sb.append("<tr>"); for (int i = 0; i < columnLabelName.size(); i++) { sb.append(String.format(HTMLDefine.TH, columnLabelName.get(i))); } sb.append("</tr>"); // the data for(int i=0; i<data.size(); i++) { sb.append("<tr>"); Map<Integer, Object> mapData = data.get(i); for (int j=0; j<mapData.size(); j++) { sb.append(String.format(HTMLDefine.TD, mapData.get(j))); } sb.append("</tr>"); if(limit <= rowCount) break; } sb.append("</table>"); return sb.toString(); } }