0

prepare ステートメントを使用して、JSP を介して Oracle 10g テーブルから複数の行を取得したいと考えています。

4

1 に答える 1

0

次のJSPコードは、プリペアドステートメントを作成します。

String myquery = "SELECT * FROM EMPLOYEES WHERE DEPARTMENT = ?";
PreparedStatement mystatement = connection.prepareStatement(myquery);

最初の行は、SQLステートメントをmyqueryという文字列変数に格納し、疑問符(?)がSQL変数値のプレースホルダーとして機能します。2行目は、mystatementというプリペアドステートメントオブジェクトを作成します。

次に、次のようにSQL変数に値を割り当てます。

mystatement.setString(1, request.getParameter("myURLparam"));

setStringメソッドは、変数に値を割り当て、2つの引数を取ります。最初の引数は、影響を受ける変数をその位置(ここでは、SQLステートメントの最初の位置)によって指定します。2番目の引数は、変数の値を指定します。この例では、値はページに渡されるURLパラメーターによって提供されます。

注:SQL変数に非文字列値を割り当てるには、さまざまな方法を使用する必要があります。たとえば、変数に整数を割り当てるには、mystatement.setInt()メソッドを使用します。

最後に、次のようにレコードセットを生成します。

ResultSet myresults = mystatement.execute();

以下のリンクから以下のサンプルコードを見つけてくださいhttp://oracle.ittoolbox.com/groups/technical-functional/oracle-apps-l/how-to-connect-to-database-in-jsp-using-jdbc- drivers-to-oracle-database-1569382

<%@ page import="java.io.*, java.util.*, java.sql.*"%> 
<%@ page import="oracle.jdbc.driver.OracleConnection" %> 
<% 
OracleConnection conn1 = null; 

ResultSet getCountRs = null; 

PreparedStatement getCountStmt = null; 
try{ 
conn1 = (OracleConnection)TransactionScope.getConnection(); 

getCountStmt = conn1.prepareStatement("SELECT 
PROMPT,FUNCTION_ID,SUB_MENU_ID FROM FND_MENU_ENTRIES_VL WHERE MENU_ID 
=:1 and prompt is not null"); 

getCountStmt.setInt(1,pMenuid); 

getCountRs = getCountStmt.executeQuery(); 
while(getCountRs.next()) 
{ 
prompt[x]=getCountRs.getString(1); 
function_id[x]=getCountRs.getInt(2); 

submenu_id[x]=getCountRs.getInt(3); 
x++; 
} 
} 
catch(exception e) {} 
%> 
于 2012-04-20T12:47:39.227 に答える