怎样把数据库中的表中数据回显到前端页面

您所在的位置:网站首页 前端查询数据库信息显示 怎样把数据库中的表中数据回显到前端页面

怎样把数据库中的表中数据回显到前端页面

2024-01-21 23:37| 来源: 网络整理| 查看: 265

 刚刚解决了一个困扰我好久的问题,就是怎样把数据库中的表中数据回显到前端。

大致目标:显示关于帖子回复列表(即显示数据库中comment表)

大致思路:要有两个简单的jsp,一个是top.jsp(设计它的目的在于点击“回复列表”字样可以触发action),另一个是comment_list.jsp(目的在于把数据库中的表显示在表格中);一个action(即servlet)SelectAllComment.java(主要操作在此处,相当于主函数的作用);一个Dao层设计Dora_commentDao.java(其实是写一些操作数据库的方法,用到的是SelectAll());还有其他的基础代码,比如说数据库的连接,comment表对象的实体类(成员变量,get(),set()方法),其他没有什么了。

简单画个图:

项目的部分目录(只截取了有必要的部分):

先展示成果吧,觉得参考价值可以继续往下看:

在tomcat上运行top.jsp

点击回复列表:

 

 

按照在tomcat服务器上运行时调用的代码顺序来写:

top.jsp

Insert title here 回复列表

简单解释一下"../SelectAllComment"的意思,因为top.jsp并没有放在WebContent的根目录下,所以要往上返回一层,SelectAllComment其实是action的名字,这也是它可以找到action的凭证

SelectAllComment.java

package com.dora.servlet.comment; import java.io.IOException; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.dora.entity.Dora_Comment; import com.dora.service.Dora_commentDao; @WebServlet("/SelectAllComment") public class SelectAllComment extends HttpServlet{ private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ArrayList plist = Dora_commentDao.selectAll(); request.setAttribute("plist", plist); request.getRequestDispatcher("test/comment_list.jsp").forward(request, response); } }

 

特别注意的是@WebServlet("/SelectAllComment"),它是识别action的关键,传统的servlet要写配置文件来选定调用哪个action,此处不需要。

Dora_commentDao.java

package com.dora.service; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import com.dora.dao.Basedao; import com.dora.entity.Dora_Comment; public class Dora_commentDao { //查看评论 //获取当前帖子的标号 目前帖子标号写死,post_id=1 public static ArrayList selectAll() { ArrayList list = new ArrayList(); //声明结果集 ResultSet rs = null; //获取连接对象 Connection conn = Basedao.getconn(); PreparedStatement ps = null; try { String sql = "select * from comment where post_id=1"; ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while(rs.next()) { Dora_Comment p = new Dora_Comment( rs.getString("comment_id"),rs.getString("user_id"), rs.getString("post_id"),rs.getString("comment_Content"), rs.getString("comment_ReplyTime"), rs.getInt("comment_Support"),rs.getInt("comment_Negative") ); list.add(p); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { Basedao.closeall(rs, ps, conn); } return list; } }

Dora_Comment.java

package com.dora.entity; public class Dora_Comment { private String comment_id; // 评论帖编号,主码 private String user_id; // 用户编号,外键 private String post_id; // 帖子编号,外键 private String comment_Content; // 评论内容 private String comment_ReplyTime; // 回复时间 private int comment_Support; // 点赞数 private int comment_Negative; // 举报数 public Dora_Comment(String comment_id, String user_id, String post_id, String comment_Content, String comment_ReplyTime, int comment_Support, int comment_Negative) { super(); this.comment_id = comment_id; this.user_id = user_id; this.post_id = post_id; this.comment_Content = comment_Content; this.comment_ReplyTime = comment_ReplyTime; this.comment_Support = comment_Support; this.comment_Negative = comment_Negative; } public Dora_Comment() { } //此处省略了get()、set()方法 }

comment_list.jsp

Insert title here ID 回复内容 回复时间 点赞数 举报数 ${p.comment_id } ${p.comment_Content } ${p.comment_ReplyTime } ${p.comment_Support } ${p.comment_Negative }

BaseDao.java

package com.dora.dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Basedao { static { //加载驱动 try { Class.forName("com.mysql.cj.jdbc.Driver"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static Connection getconn() { //创建一个连接对象 Connection conn = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dorakaoyan?useSSL=false&serverTimezone=CST", "root", "root"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(conn!=null){ System.out.println("mysql连接正常!"); }else{ System.out.println("mysql连接异常!"); } return conn; } public static int exectuIUD(String sql, Object[] params) { int count = 0; Connection conn = Basedao.getconn(); //准备SQL PreparedStatement ps = null; // insert into user(''''''','') value(?, ?, ?) try { //准备SQL ps = conn.prepareStatement(sql); for (int i = 0; i < params.length; i++) { ps.setObject(i + 1, params[i]); } count = ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { Basedao.closeall(null, ps, conn); } return count; } public static void closeall(ResultSet rs, PreparedStatement ps, Connection conn) { try { if (rs != null) rs.close(); if (ps != null) ps.close(); if (conn != null) conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

      其实个人觉得重在理解,然后再去修改或编写自己的就会容易很多,新手一个,有不足之处还望指正。

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3