论坛首页 Java企业应用论坛

最新老大要求要在web上做一个类似数据库客户端的东东,我都要疯了?

浏览 7342 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-11   最后修改:2010-06-07
要求在输入框随便输入一条sql语句,在下面得到查询结果,这要求jsp显示页面是动态的,大家有啥想法吗?
我快搞疯了.
   发表时间:2007-04-11  
用纯字串来,我作过。。。不过安全性低到底。。。
第一条sql 得出ResultSet
把数据一个个分析出来写入 一个两维数组[][]
把这两维数组中的数据中写入<tr>,<td>
组成纯字串
之后页面上写
<table>
<%=request.getAttriblet("stringForTable")%>
</table>
0 请登录后投票
   发表时间:2007-04-11  
抛出异常的爱 写道
用纯字串来,我作过。。。不过安全性低到底。。。
第一条sql 得出ResultSet
把数据一个个分析出来写入 一个两维数组[][]
把这两维数组中的数据中写入<tr>,<td>
组成纯字串
之后页面上写
<table>
<%=request.getAttriblet("stringForTable")%>
</table>
老兄,能详细点吗?我快被逼疯了,指点一下.
0 请登录后投票
   发表时间:2007-04-11  
package common;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class String2HtmlTools {
	public static StringBuffer buffer = null;
	public static String List2HtmlStringTools(List[] lists){
		buffer= new StringBuffer();
		List list = null;
		list = lists[0];
		int maxrow = list.size();
		for(int j = 0 ; j <maxrow;j++){
			buffer.append("<tr>");
			for(int i = 0 ;i<lists.length;i++){			
				list = lists[i];			
				buffer.append("<td>");
				buffer.append(list.get(j).toString());
				buffer.append("</td>");				
			}
			buffer.append("</tr>");
		}
		return buffer.toString();
	}
	public static List Map2List(Map map,String key){
		List 	list = (List)map.get(key);
				
		
		
	
		
		return list;
		
	}
	public static List[] map2Lists(Map map){
		List[] lists = null;	
		List list = null;
		List keylist = new ArrayList();
		keylist.addAll(map.keySet());
		lists = new List[keylist.size()];
		
		Iterator it = keylist.iterator();
		int i = 0;
		while(it.hasNext()){
			lists[i] = new ArrayList();
			String name =(String)it.next();
			lists[i].add(name);
			list = (List)map.get(name);
			lists[i].addAll(list);
			i++;
		}
		return lists;
	}
}
0 请登录后投票
   发表时间:2007-04-11  
package common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import junit.framework.Assert;
import junit.framework.TestCase;

public class String2HtmlToolsTest extends TestCase {
	List [] lists = null;
	public static void main(String[] args) {
		junit.swingui.TestRunner.run(String2HtmlToolsTest.class);
	}

	protected void setUp() throws Exception {
		//super.setUp();

	}

	protected void tearDown() throws Exception {
		super.tearDown();
	}
	public void testString2HtmlonceList(){
		List list = null;
		lists = new List[1];
		{
			list = new ArrayList();
			list.add("1000");
			list.add("2000");
			lists[0]=list;
		}
		String html = String2HtmlTools.List2HtmlStringTools(lists);
		this.assertEquals(html,"<tr><td>1000</td></tr><tr><td>2000</td></tr>");
	}
	public void testString2HtmltwiceList(){
		List list = null;
		lists = new List[2];
		{
			list = new ArrayList();
			list.add("1000");
			list.add("2000");
			lists[0]=list;
		}
		{
			list = new ArrayList();
			list.add("1000");
			list.add("2000");
			lists[1]=list;
		}
		String html = String2HtmlTools.List2HtmlStringTools(lists);
		assertEquals(html,
				"<tr>" +
				"<td>1000</td>" +
				"<td>1000</td>"+
				"</tr>" +
				"<tr>" +
				"<td>2000</td>" +
				"<td>2000</td>" +
				"</tr>");
	}
	public void testString2HtmlthreeList(){
		List list = null;
		lists = new List[3];
		{
			list = new ArrayList();
			list.add("1000");
			list.add("2000");
			list.add("3000");
			lists[0]=list;
		}
		{
			list = new ArrayList();
			list.add("1000");
			list.add("2000");
			list.add("3000");
			lists[1]=list;
		}
		{
			list = new ArrayList();
			list.add("10");
			list.add("20");
			list.add("30");
			lists[2]=list;
		}
		String html = String2HtmlTools.List2HtmlStringTools(lists);
		this.assertEquals(html,
				"<tr>" +
				"<td>1000</td>" +
				"<td>1000</td>"+
				"<td>10</td>"+
				"</tr>" +
				"<tr>" +
				"<td>2000</td>" +
				"<td>2000</td>" +
				"<td>20</td>" +
				"</tr>"+
				"<tr>" +
				"<td>3000</td>" +
				"<td>3000</td>"+
				"<td>30</td>"+
				"</tr>" );
	}
	public void testMap2ListArray(){
		List list = null;
		Map map = new HashMap();
		{
			list = new ArrayList();
			list.add("1000");
			list.add("2000");
			list.add("3000");
			map.put("2001",list);
		}
		{
			list = new ArrayList();
			list.add("1000");
			list.add("2000");
			list.add("3000");
			map.put("2002",list);
		}
		{
			list = new ArrayList();
			list.add("10");
			list.add("20");
			list.add("30");
			map.put("2003",list);
		}

		assertEquals(3,((List)map.get("2001")).size());
		assertEquals(3,((List)map.get("2002")).size());
		assertEquals(3,((List)map.get("2003")).size());
		

		List keylist = new ArrayList();
		keylist.addAll(map.keySet());
		lists = new List[keylist.size()+1];
		lists[0] = keylist;
		Iterator it = keylist.iterator();
		int i = 1;
		while(it.hasNext()){		
			list = String2HtmlTools.Map2List(map,it.next().toString());
			lists[i]=list;
			i++;
		}
		//lists = null;
		assertEquals(4,lists.length);
		assertEquals(3,lists[0].size());
		assertEquals(3,lists[1].size());
		assertEquals(3,lists[2].size());
		assertEquals(3,lists[3].size());
		

	}
	
	public void testAll(){
		List list = null;
		Map map = new HashMap();
		{
			list = new ArrayList();
			list.add("1000");
			list.add("2000");
			list.add("3000");
			map.put("2001",list);
		}
		{
			list = new ArrayList();
			list.add("1000");
			list.add("2000");
			list.add("3000");
			map.put("2002",list);
		}
		{
			list = new ArrayList();
			list.add("10");
			list.add("20");
			list.add("30");
			map.put("2003",list);
		}

		assertEquals(3,((List)map.get("2001")).size());
		assertEquals(3,((List)map.get("2002")).size());
		assertEquals(3,((List)map.get("2003")).size());
		
		lists = String2HtmlTools.map2Lists(map);

		
		String html = String2HtmlTools.List2HtmlStringTools(lists);
		this.assertEquals(html,
				"<tr>" +
				"<td>2001</td>" +
				"<td>2002</td>"+
				"<td>2003</td>"+
				"</tr>" +				
				"<tr>" +
				"<td>1000</td>" +
				"<td>1000</td>"+
				"<td>10</td>"+
				"</tr>" +
				"<tr>" +
				"<td>2000</td>" +
				"<td>2000</td>" +
				"<td>20</td>" +
				"</tr>"+
				"<tr>" +
				"<td>3000</td>" +
				"<td>3000</td>"+
				"<td>30</td>"+
				"</tr>" );
	}
}
0 请登录后投票
   发表时间:2007-04-11  
先获得文本框的value(sql语句)
然后提交到本页
用jstl显示
<sql:setDataSource driver=数据库驱动 url=连接数据库的url user=连接数据库的用户名 password=该用户名的密码 var=该连接的名称"con">
<sql:query var="rs" dataSource="${con}">
sql语句
</sql:query>
<table>

  <tr>
     <c:forEach items="${rs.columNames}" var="colName">
       <td><c:out value="${colName}"/></td>
     </c:forEach>
  </tr>

  <c:forEach var="row" items="${rs.rowsByIndex}">
    <tr>
       <c:forEach var="col" items ="${row}">
          <td><c:out value="${col}"></td>
       </c:forEach>
    </tr>
  </c:forEach>

</table>

0 请登录后投票
   发表时间:2007-04-12  
抛出异常的爱  大哥真是好人呀


blu3leaf 的方法不错
0 请登录后投票
   发表时间:2007-04-12  
to blu3leaf:
你的这种方法如何获得字段名,jstl可以自动解析吗?



0 请登录后投票
   发表时间:2007-04-12  
这个 东西 官方 也有 WEB 的 吧!
0 请登录后投票
   发表时间:2007-04-12  
piaochunzhi 写道
这个 东西 官方 也有 WEB 的 吧!
啥意思?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics