怎样把数据库中的表中数据回显到前端页面 |
您所在的位置:网站首页 › 前端查询数据库信息显示 › 怎样把数据库中的表中数据回显到前端页面 |
刚刚解决了一个困扰我好久的问题,就是怎样把数据库中的表中数据回显到前端。 大致目标:显示关于帖子回复列表(即显示数据库中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 |