📜  Struts 2获取表的所有记录

📅  最后修改于: 2021-01-11 06:40:32             🧑  作者: Mango

Struts 2提取表的所有记录

为了获取所有记录,我们将所有记录存储在一个集合中(使用List),并使用struts2的迭代器标签显示集合的数据。

在这里,我们假设您在Oracle数据库中有一个名为user3333的表,其中包含记录。表查询为:

CREATE TABLE  "USER3333" 
   (    "ID" NUMBER, 
    "NAME" VARCHAR2(4000), 
    "PASSWORD" VARCHAR2(4000), 
    "EMAIL" VARCHAR2(4000), 
     CONSTRAINT "USER3333_PK" PRIMARY KEY ("ID") ENABLE
   )

获取表中所有记录的示例

在此示例中,我们将创建5个页面:

  • index.jsp调用动作。
  • Register.java用于在集合中存储表的数据。
  • 用于表示表的User.java。
  • 用于定义操作和结果的struts.xml。
  • welcome.jsp用于视图组件以显示记录。

1)创建index.jsp来调用操作(可选)

这个jsp页面创建了一个链接来调用动作。但是您可以直接调用动作类。

2)创建动作类

该动作类包含ArrayList对象作为数据成员和execute方法。

package com.javatpoint;
import java.sql.*;
import java.util.ArrayList;

public class FetchRecords {
ArrayList list=new ArrayList();

public ArrayList getList() {
    return list;
}
public void setList(ArrayList list) {
    this.list = list;
}
public String execute(){
 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 user3333");
  ResultSet rs=ps.executeQuery();

  while(rs.next()){
   User user=new User();
   user.setId(rs.getInt(1));
   user.setName(rs.getString(2));
   user.setPassword(rs.getString(3));
   user.setEmail(rs.getString(4));
   list.add(user);
  }

  con.close();
 }catch(Exception e){e.printStackTrace();}
        
 return "success";
}
}

3)创建代表表的类

这是包含4个字段的简单bean类。

package com.javatpoint;

public class User {
private int id;
private String name,password,email;
//getters and setters
}

4)创建struts.xml

此xml文件定义操作和结果。







displayrecords.jsp



    

5)创建视图组件

它是显示用户信息的简单jsp文件。

<%@ taglib uri="/struts-tags" prefix="s" %>

All Records: