2016-05-07 21 views
1

私はOracleデータベースに名前カテゴリを持ち、このカテゴリテーブル内に列c_nmを持ち、データはcategory1、category2、category3、......などです 私はこれをすべて必要としますjspページ上の配列または文字列に格納するデータ。 例:oracleからデータを取得

<%@ 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); 
} 
%> 

はこの権利符号化であるか、私はこれを行うための別の方法を選ぶべきなのでしょうか?

+0

問題点を教えてください。このコードはコンパイルされますか? – SMA

+0

ちょうどそれを正しく理解する。あなたは "category"という名前のデータベースを持っていて、その中に "category1"、 "category2"という値を持つ "c_nm"という名前の列を持つ "category"という名前のテーブルがありますか? – totoro

+0

配列のすべてのカテゴリが取得できない場合は、配列の宣言に何か問題があります – Rizwan

答えて

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]); 

あなたは、私が長さ0の配列を渡す理由として混乱している場合は、さらに調査してください。What to pass to the Arrays instance method toArray(T[] a) method?を。

他の物事がために注意する:

  • Javaは大文字と小文字が区別され、S1s1、あなたの%!セクションを参照してくださいと同じではありません。
  • ないs1[]=なく、ただ単にs1= - あなたは1を作成するときに、配列のサイズを指定する必要がHow to initialize an array in Java?
  • を参照してください...それは私があなたの<%中の文と信じnew String []
  • = new String[10]です! ...%>はまだセミコロン(;)で終了する必要があります。これらすべての修正ととにかく

、それはおそらく、このようなものにする必要があります。

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

私たちは、代わりにヌルが割り当てられている可能性がありますが、コードの残りの部分は大丈夫だろうかどうかはわかりません。これは今のところ最も慎重なことに思えました。

今も、あなたがListArrayListを使用しているので、あなたはそれのためにimport sectionsが必要になります:

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

を次にあなたが実際にそれらのカテゴリで何かをしたい場合は、これに似た何かを書きたいと思います:私も、私はcategories 01を使用代わりに、(あなたはネイティブ配列と呼ばれるものは何でも)s1またはS1を使用しなかった

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

注意を直接(したがって、実際に変換する必要はありません)。

私があなたに提供した解決策については多くのことが言えますが、私はあなたの質問に直接答えるのが最も簡単ですが、

関連する問題