javaweb+struct1.2+mysql实现将数据库中查询得到的list显示到前台

24 篇文章 0 订阅

1.action中编写数据库的连接查询语句:

// 定义MySQL的数据库驱动程序
	public static final String DBDRIVER = "com.mysql.jdbc.Driver";
	// 定义MySQL数据库的连接地址
	public static final String DBURL = "jdbc:mysql://localhost:3306/test";
	// MySQL数据库的连接用户名
	public static final String DBUSER = "root";
	// MySQL数据库的连接密码
	public static final String DBPASS = "123456";

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws SQLException, Exception {

		Connection conn = null; // 数据库连接

		Statement stmt = null;
		ResultSet rs = null; // 保存查询结果

		try {
			Class.forName(DBDRIVER); // 加载驱动程序
			conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		} catch (ClassNotFoundException e) {
			System.out.println("找不到驱动器");
		} catch (SQLException e) {
			System.out.println("连接数据库失败");
		}

		String sql = "SELECT id,proName,result,time from testresult";
		stmt = conn.createStatement();

		rs = stmt.executeQuery(sql);
		if (rs.next()) {
			System.out.println("rs has data");
		} else {
			System.out.println("rs has NO data");
		}

其中要注意driver的路径一定要写对。

接下来是将查询得到的数据rs保存到list中。

1.首先建一个javabean封装类,用来设置sql查询出来的变量属性:

public class TestResult {
	private int id;
	private String proName;
	private String result;
	private String time;

	public int getId() {
		return this.id;
	}

	public String getProName() {
		return this.proName;
	}

	public String getresult() {
		return this.result;
	}

	public String getTime() {
		return this.time;
	}

	public void setId(int id) {
		this.id = id;
	}

	public void setProName(String proName) {
		this.proName = proName;
	}

	public void setResult(String result) {
		this.result = result;
	}

	public void setTime(String time) {
		this.time = time;
	}

}

然后在action中编写程序如下:



		List<TestResult> list = new ArrayList<TestResult>();
                
                TestResult tsrl = new TestResult();
                //这样写是有问题的,此处体现出来java与c++的不同,把对象写在循环外边,会导致查询保存的记录都是一样的了,没查询一次,就会腹泻trsl,因为在java中tsrl对象在用的时候,都是引用的地址,你在循环中对其修改一次,就把源地址中的存放的数据修改一次,这样就导致了,结果出来都是相同的数据,并且都是最后一条的数据。这一点跟c++是有很大不同的。解决办法:是在循环中new 对象,而不是在循环外编写。

rs.beforeFirst();//不管前面是否用到了rs.next()。此处都把指针指向开始的位置。while (rs.next()) {String ids = String.valueOf(rs.getInt(1));tsrl.setId(ids);tsrl.setProName(rs.getString(2));tsrl.setResult(rs.getString(3));tsrl.setTime(rs.getString(4));String
 id=tsrl.getId();String name=tsrl.getProName();list.add(tsrl);}conn.close(); // 数据库关闭int num = list.size();request.setAttribute("list", list);// 保存用户列表return (mapping.findForward("success"));


这样就把list对象传递到前台中去了。在前台中利用JSTL获取得到的list对象,如下:

<table width="80%" border="1" cellpadding="0"
		style="border-collapse: collapse; " bordercolor="#000000">
		<tr>
			<td><b>ID</b></td>
			<td><b>程序名</b></td>
			<td><b>运行状态</b></td>
			<td><b>监控时间</b></td>
		</tr>
		<c:forEach items="${list}" var="list">
			<tr>
				<td>${list.id}</td>
				<td>${list.proName}</td>
				<td>${list.result}</td>
				<td>${list.time}</td>

			</tr>
		</c:forEach>
	</table>

当出现警告说: Unknown tag (c:forEach).多半是因为没有加入JSTL必须的两个包,一般用myeclipse+struct不用考虑这个问题,因为包都包含了,但是还需要在jsp页面,声明一下:在jsp的最前面编写:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>即可解决警告问题。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Java WebMySQL数据库实现增删改查的步骤: 1.创建数据库和表 首先,需要在MySQL数据库创建一个数据库和一个表。例如,创建一个名为“test”的数据库和一个名为“users”的表,其包含id、name和age三个字段。 2.创建Java Web项目 使用IDE(如Eclipse或IntelliJ IDEA)创建一个Java Web项目,并添加MySQL数据库驱动程序(如mysql-connector-java-5.1.47.jar)到项目的lib文件夹。 3.创建实体类 创建一个名为“User”的Java类,该类包含id、name和age三个属性,并生成getter和setter方法。 4.创建DAO类 创建一个名为“UserDao”的Java类,该类包含对数据库进行增删改查操作的方法。例如,添加一个名为“addUser”的方法,该方法将一个User对象添加到数据库。 ```java public class UserDao { private Connection conn; public UserDao(Connection conn) { this.conn = conn; } public void addUser(User user) throws SQLException { String sql = "INSERT INTO users (name, age) VALUES (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, user.getName()); pstmt.setInt(2, user.getAge()); pstmt.executeUpdate(); } } ``` 5.创建Servlet类 创建一个名为“UserServlet”的Java类,该类包含处理HTTP请求的方法,并使用UserDao类执行数据库操作。例如,添加一个名为“addUser”的方法,该方法从HTTP请求获取用户输入的数据,并将其添加到数据库。 ```java public class UserServlet extends HttpServlet { private UserDao userDao; public void init() { String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, user, password); userDao = new UserDao(conn); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); int age = Integer.parseInt(request.getParameter("age")); User user = new User(); user.setName(name); user.setAge(age); try { userDao.addUser(user); response.sendRedirect("list.jsp"); } catch (SQLException e) { e.printStackTrace(); } } } ``` 6.创建JSP页面 创建一个名为“list.jsp”的JSP页面,该页面显示数据库检索的用户数据。例如,使用UserDao类的“getUserList”方法检索数据库的所有用户,并在JSP页面显示它们。 ```java <%@ page contentType="text/html; charset=UTF-8" language="java" %> <%@ page import="java.util.List" %> <%@ page import="javax.servlet.http.*" %> <%@ page import="javax.servlet.*" %> <%@ page import="java.sql.*" %> <%@ page import="User" %> <%@ page import="UserDao" %> <% String url = "jdbc:mysql://localhost:3306/test"; String user = "root"; String password = "123456"; try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, user, password); UserDao userDao = new UserDao(conn); List<User> userList = userDao.getUserList(); %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>User List</title> </head> <body> <table> <tr> <th>ID</th> <th>Name</th> <th>Age</th> </tr> <% for (User user : userList) { %> <tr> <td><%= user.getId() %></td> <td><%= user.getName() %></td> <td><%= user.getAge() %></td> </tr> <% } %> </table> </body> </html> <% } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } %> ``` 7.部署和运行 将Java Web项目部署到Tomcat服务器上,并在浏览器访问“http://localhost:8080/user/add”页面,以添加一个新的用户。然后访问“http://localhost:8080/user/list”页面,以检索并显示所有用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值