如何在jsp上查询并显示数据库mysql的数据表格

您所在的位置:网站首页 mysql表单数据查询 如何在jsp上查询并显示数据库mysql的数据表格

如何在jsp上查询并显示数据库mysql的数据表格

2023-10-17 03:57| 来源: 网络整理| 查看: 265

需要在jsp上实现查询数据库的表格(就是通过用户输入查询表格)

总体的思路:

1.首先用户在jsp中输入需要查询的对象并跳转Servlet。

2.Servlet在后台接收到数据。

3.Servlet与数据库建立连接,并且在Servlet输入  sql代码与用户输入的信息  去查询Mysql数据库里的表格。

4.在Servlet中接收数据库查询到的信息。

5.再通过跳转跳转到一个新的jsp页面中,并在页面中输出查询出来的表格。

总体上的思路已经写明了,那么接下来我们就按照步骤一步一步往下做。

我们需要的有:

一个用于输入的jsp页面 ,

一个用于建立连接和接收数据的Servlet,

一个用于打印数据的jsp页面

 一.首先写一个用于接收用户数据的表单

Insert title here 这里的FirstSql是连接到下面的Servlet的 输入框 提交表单按钮 FirstSql是连接到下面的Servlet的 输入框 提交表单按钮

效果如下

二.创建一个Servlet

   首先这里需要mysql数据库的数据,在Navicat中编写sql代码获取数据表格

SELECT student.`name`,contact_desc.`desc`,contact_ext.contact FROM student JOIN contact_ext ON contact_ext.idcard=student.idcard JOIN contact_desc ON contact_desc.contact_type=contact_ext.contact_type WHERE student.idcard=;(这里需要查询的ID暂时不写,是需要用户输入的)

查询以后的结果是这样的

然后编写创建Servlet

package com.servlet; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/FirstSql") public class FirstSql extends HttpServlet{ private static String jdbcDriver = "com.mysql.jdbc.Driver";// mysql连接驱动,无需改 public static String jdbcUrl = "jdbc:mysql://localhost:3306/zdy"; public static String jdbcUser = "root";//数据库用户名 public static String jdbcPwd = "1111";//数据库密码 private static Connection conn; public static Statement st; static { try { Class.forName(jdbcDriver);// 加载mysql驱动类 conn = DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPwd); // 驱动利用驱动地址,数据库用户名,密码创建连接 st = conn.createStatement(); } catch (Exception e) { e.printStackTrace(); } } //以上基本是固定格式的 protected void service(HttpServletRequest request, HttpServletResponse response) // throws ServletException, IOException { List list =new ArrayList();//创建list集合用于存入map的键值对集合 String idcard_w = request.getParameter("idcard_w");//接收到前台传来的数据 System.out.println(idcard_w); try { String sql ="SELECT student.`name`,contact_desc.`desc`,contact_ext.contact\r\n"+ "FROM student\r\n"+ "JOIN contact_ext ON contact_ext.idcard=student.idcard\r\n"+ "JOIN contact_desc ON contact_desc.contact_type=contact_ext.contact_type\r\n"+ "WHERE student.idcard="+idcard_w; //复制之前的sql代码 每行必须要转换为字符串然后加上换行符 // idcard_w是用户传入的数据用于查询用户需要的信息 ResultSet rs = st.executeQuery(sql); //从数据库读取的内容,返回一个结果集。 System.out.println("获取数据"); while (rs.next()) { String name = rs.getString("name"); String desc = rs.getString("desc"); String contact = rs.getString("contact"); //获取用循环接收数据库的表格信息 Map map = new HashMap(); map.put("name", name); map.put("desc", desc); map.put("contact", contact); //用键值对存入到map集合中 System.out.println(map); list.add(map);//在将map集合对象存入list集合 System.out.println("放入集合"); for (Map map_1 :list) { System.out.println(map_1); }//在打印台遍历出数据查看是否有错误 }//遍历结果集 } catch (Exception e) { e.printStackTrace(); } System.out.println("跳转"); request.setAttribute("key_list",list);//将list集合数据放入到request中共享 request.getRequestDispatcher("/index.jsp").forward(request, response); //跳转到index.jsp页面 } }

三.跳转到的index.jsp中,将表格打印出来

Insert title here th, tr, td, table { border: 1px solid red; } name desc contact ${usr.name}${usr.desc} ${usr.contact}

到这里程序已经基本完成,剩下就是测试了

在这里输入1提交

页面则会跳转到如下界面

如果提交2的话

 



【本文地址】


今日新闻


推荐新闻


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