我想将逗号添加到从数据库中检索的字符串。
在下面的代码中我从数据库中找到了员工,他的工作是老师
这是我的代码
<td>
<%
sql2 = "SELECT empname FROM users WHERE job = ? ";
ps2 = connection.prepareStatement(sql2);
ps2.setString(1, jobname);
rs2 = ps2.executeQuery();
while (rs2.next()){
String emp= rs2.getString("empname");
%>
<%=emp%>
<% } %>
</td>
答案 0 :(得分:1)
您可以empname
ArrayList<String> empList = new ArrayList<String>();
while (rs2.next())
{
String emp= rs2.getString("empname");
empList.add(emp);
}
<c:forEach items="${empList}" var="empName" varStatus="loop">
<c:out value="${empName}" />
<c:if test="${!loop.last}">,</c:if>
</c:forEach>
您可以使用ResultSet
的{{3}}方法,但是,
我建议你不要在JSP中使用scriptlet
见isLast()
要使用JSTL,您只需将how to avoid Java Code in JSP-Files?放入/WEB-INF/lib
中
在JSP中
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
更新评论答案
它不打印结果。
脚本是嵌入在页面代码中的原始java,如果在脚本中声明变量,那么它们就会成为页面中嵌入的局部变量。
相比之下,JSTL完全使用作用域属性,无论是在页面,请求还是会话范围内
因此,要使用在Scriptlets中创建的ArrayList empList
,您需要修改代码。 jstl-1.2.jar
<%
ArrayList<String> empList = new ArrayList<String>();
while (rs2.next())
{
String emp= rs2.getString("empname");
empList.add(emp);
}
pageContext.setAttribute("empList", empList);//pageContext is implicit object available
%>
然后上面提到的JSTL代码将正常工作。
相关链接
答案 1 :(得分:0)
您可以使用rs2.isLast()
检查当前ResultSet
是否为最后一条记录,并且在这种情况下不添加,
。然而,这是昂贵的,因为JDBC驱动程序将提取一行以确定当前行是否是结果集中的最后一行。
答案 2 :(得分:0)
这就够了..
<%
sql2 = "SELECT empname FROM users WHERE job = ? ";
ps2 = connection.prepareStatement(sql2);
ps2.setString(1, jobname);
rs2 = ps2.executeQuery();
boolean b = rs2.last();
int numberOfRecords = 0;
if(b){
numberOfRecords = rs.getRow();
System.out.println(numberOfRecords);
}
rs = stmt.executeQuery(sql);
while (rs.next()){
if(numberOfRecords>1)
{
String emp= rs.getString("bank")+",";
}
else
{
String emp=rs.getString("bank");
}
numberOfRecords--;
%>
<%=emp%>
<% } %>