从oracle中检索数据

时间:2016-05-07 14:48:33

标签: java oracle jsp

我在oracle数据库中有一个名称类别的表,在这个类别表中我有列c_nm,数据是category1,category2,category3,......等等 我希望所有这些数据都存储在我的jsp页面上的数组或字符串中。 例如:

<%@ include file"connection.jsp"%> // for connecting to data base 
<%! String S1[]= new String[]%> declare a string

<%
rs=stat.executeQuery("select * from category ");
while(rs.next()){
s1[]=rs.getString(c_nm);
} 
%>

这是正确的编码还是应该选择其他方法来执行此操作?

1 个答案:

答案 0 :(得分:0)

如果您需要类别列表,则需要循环搜索结果,然后将其添加到List。你会做一个清单,因为你不需要事先知道你有多少类别。

rs=stat.executeQuery("select * from category ");
List<String> categories = new ArrayList<>();
while (rs.next()) {
  categories.add(rs.getString(c_nm));
}

然后,如果确实需要,您可以将列表转换为数组:

s1 = categories.toArray(new String[0]);

如果您对我传递零长度数组的原因感到困惑,请进一步研究:What to pass to the Arrays instance method toArray(T[] a) method?

其他需要注意的事项:

  • Java区分大小写,S1s1不同,请参阅%!部分。
  • 不是s1[]=而只是s1= - 请参阅How to initialize an array in Java?
  • 您需要在创建数组时指定数组的大小... = new String[10] vs new String []
  • 我相信你的&lt;%! ...%&gt;仍然需要以分号结尾(;)。

无论如何,所有这些更正都应该是这样的:

<%! String [] s1 = new String[0]; %>

我们可以指定null,但我不知道其余的代码是否正常。这似乎是目前最谨慎的事情。

现在,由于您使用的是ListArrayList,因此您需要import sections

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>

然后,如果你真的想对这些类别做些什么,你会想要写一些类似的东西:

<% for (String category:categories) { %>
<p><%=category%></p>
<% } %>

请注意,我甚至没有使用s1S1(无论你称之为原生数组),而是直接使用了categories List(所以确实无需进行转换。)

请注意,我为您提供的解决方案有很多话要说,但我认为这是最简单的解决方案。