0

我想通过 JSP 使用 prepare 语句从 oracle 10g 表中检索多行。

4

1 回答 1

0

以下 JSP 代码创建一个准备好的语句:

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

第一行将 SQL 语句存储在名为 myquery 的字符串变量中,并带有一个问号 (?) 作为 SQL 变量值的占位符。第二行创建一个名为 mystatement 的准备好的语句对象。

接下来,为 SQL 变量赋值,如下所示:

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

setString 方法将值分配给变量并接受两个参数。第一个参数通过其位置(这里是 SQL 语句中的第一个位置)指定受影响的变量。第二个参数指定变量的值。在此示例中,该值由传递给页面的 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-中找到以下示例代码驱动程序到 Oracle 数据库 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 回答