2012-12-23 3 views
-4

JSP를 사용하여 Oracle에서 데이터를 가져 오려고합니다. 여러 매개 변수는 양식 텍스트 상자에서 전달되어야합니다.JSP를 사용하여 Oracle에서 데이터를 가져 오는 중

<form method="post" action="num_post.jsp"> 
Enter Number: <input name="num" type="text" id="num" /> 

<input type="submit" name="Submit" value="Submit" /> 
</form> 

여기 텍스트 필드에 여러 매개 변수를 전달하고 싶습니다. 예 : 123,456,789,896 등

이제 num_post.jsp에서 나는 JSP에서 전달 된 매개 변수를 요청하는이 코드를 가지고 있습니다.

<% 
String[] num=request.getParameterValues("num"); 

int i=0; 

for(i=0;i<num.length;i++) 
{ 
     out.println("number Elements  :"+num[i]+"<br/>"); 
} 
%> 

는 지금은 예를 들어, 배열 매개 변수를 사용하여 Oracle에서 데이터를 가져 오려는 : num[i]

<%@page import="java.sql.*"%> 
<%@ page import = "java.io.*"%> 
<% 
Class.forName("oracle.jdbc.OracleDriver"); 
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle"); 
Statement st=con.createStatement(); 
String sql = "SELECT * from jha where num IN '"+num[i]+"'" ; 
ResultSet rs = st.executeQuery(sql); 
%> 

이는 ArrayOutOfBound 예외가 발생합니다.

+0

내 솔루션을 사용해보고 알려주십시오. 당신이 해결책을 얻은다면, 그것을 받아들이십시오. 그렇지 않으면 당신의 문제를 정교하게하십시오. – Ravi

+0

어디 있니? 너의 결심이든 아니든, 적어도 나를 알게해라.? – Ravi

답변

0

String[] num=(request.getParameter("num").toString()).split(",");

대신

String[] num=request.getParameterValues("num");

===== UPDATE가 ===== 지정한대로

, 을 ArrayIndexOutOfBound

의 시도 , 즉, 배열에서 인덱스 밖으로 액세스하려고합니다. 그리고, 당신이없는 4 인덱스 요소를 액세스하려고 쿼리에,

String[] num=(request.getParameter("num").toString()).split(","); // let say array size would be 4 
int i=0; // i initialized by 0 

for(i=0;i<num.length;i++) 
{ 
     out.println("number Elements  :"+num[i]+"<br/>"); 
} 
    // when control reached here, the value of i will be 4 (which is out of index) 

지금은 분명하다. 당신이 ArrayIndexOutOfBound을 받고 이유

"SELECT * from jha where num IN '"+num[i]+"'" // here value of i is 4 

. 알았다 ???

더 많은 것은 거기에 작성한 쿼리를 배열에서 하나의 값만 확인하는 데 적용 할 수 있습니다. 따라서 쿼리를 변경해야합니다. 예상 출력이 표시되지 않습니다.

+0

응원을 위해 Tim Medora에게 감사의 말을 전합니다. 그러나 –

+0

저는 Tim Medora가 아니며 작동하지 않는 것을 정교하게 기재하십시오. – Ravi

+0

수정 var______ sql 쿼리가 매개 변수를 허용하지 않습니다. // 텍스트 상자에서 매개 변수를 검색 할 수 있지만 sql은 해당 매개 변수를 전달하지 않아 데이터베이스에서 세부 정보를 가져옵니다. 문자열 sql = "jha에서 SELECT * where num IN '"+ num [i] + "'"; –

관련 문제