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

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

总体的思路:

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

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

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

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

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

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

我们需要的有:

一个用于输入的jsp页面 ,

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

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

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

Insert title here

这里的FirstSql是连接到下面的Servlet的

输入框

提交表单按钮

效果如下

1257c6fa34ef1414107ed0280ad4b480.png

二.创建一个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暂时不写,是需要用户输入的)查询以后的结果是这样的

386714892a3a1cdf5ce0de342b9b02ec.png

然后编写创建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 {

Listlist =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

name

desc

contact

${usr.name}${usr.desc} ${usr.contact}

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

在这里输入1提交

1257c6fa34ef1414107ed0280ad4b480.png

页面则会跳转到如下界面

d156f58db4bca3941b1b16ba7c7538a1.png

如果提交2的话

ff398f83a9e816ac338757f2aadb4ca5.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值