📅  最后修改于: 2021-01-09 12:58:01             🧑  作者: Mango
在这里,您将学习如何获取给定rollno的结果。我假设有一个如下表:
CREATE TABLE "RESULT"
( "ROLLNO" NUMBER,
"NAME" VARCHAR2(40),
"RESULT" VARCHAR2(40),
"GRADE" VARCHAR2(40),
CONSTRAINT "RESULT_PK" PRIMARY KEY ("ROLLNO") ENABLE
)
/
我们假设此表中有很多记录。在此示例中,我们从servlet的数据库中获取数据并进行打印。为了简化程序,我们正在servlet中执行所有数据库逻辑。但是最好将其与servlet文件分开。
在此示例中,我们创建了三个文件
该页面从用户那里获取rollno,并将此数据转发到servlet,该servlet负责根据给定的rollno显示记录。
这是servlet文件,该文件从用户那里获取输入,并将此数据与数据库映射,并打印匹配数据的记录。在此页面中,我们将显示数据库的列名以及数据,因此我们使用ResultSetMetaData接口。
import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class Search extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String rollno=request.getParameter("roll");
int roll=Integer.valueOf(rollno);
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
PreparedStatement ps=con.prepareStatement("select * from result where rollno=?");
ps.setInt(1,roll);
out.print("");
out.print("Result: ");
ResultSet rs=ps.executeQuery();
/* Printing column names */
ResultSetMetaData rsmd=rs.getMetaData();
int total=rsmd.getColumnCount();
out.print("");
for(int i=1;i<=total;i++)
{
out.print(""+rsmd.getColumnName(i)+" ");
}
out.print(" ");
/* Printing result */
while(rs.next())
{
out.print(""+rs.getInt(1)+" "+rs.getString(2)+"
"+rs.getString(3)+" "+rs.getString(4)+" ");
}
out.print("
");
}catch (Exception e2) {e2.printStackTrace();}
finally{out.close();}
}
}
这是向容器提供servlet信息的配置文件。
Search
Search
Search
/servlet/Search
要将Java应用程序与Oracle数据库连接,需要加载ojdbc14.jar文件。将此jar文件放在WEB-INF / lib文件夹中。