JAVA查询数据库并显示jsp_java servlet数据库查询并将数据显示到jsp页面

需要的jar包:mysql-connector-java.jar

build path只是个jar包的引用,部署的时候想不丢包最好还是手动拷贝到对应项目的lib文件下。

在try{}中定义的变量为局部变量。

WEB-INF对于浏览器是无法直接通过url访问的,因此要想跳转到WEB-INF目录下必须采用服务端的foward方法而不能采用redirect方法。

注意网页的编码问题,一般全采用utf-8就没乱码了。

注意pageContext,request,session,application对象的scope,作用范围。

目录结构为:

e61e503f2c3bf86c4bc4f6a86d38714b.png

首先我们创建实体类:Student

package micro.entity;

public class Student {

String name;

int no;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getNo() {

return no;

}

public void setNo(int no) {

this.no = no;

}

}

创建dao,负责数据库的连接与关闭:

package micro.dao;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import com.mysql.jdbc.PreparedStatement;

public class Dao {

public static Connection getConnection() throws SQLException

{

String url = "jdbc:mysql://localhost:3306/micro";

String username = "root";

String password = "root";

Connection conn = null;

try

{

Class.forName("com.mysql.jdbc.Driver");

conn = DriverManager.getConnection(url, username, password);

}

catch(ClassNotFoundException e)

{

e.printStackTrace();

}

return conn;

}

public static void close(ResultSet rs,PreparedStatement ps,Connection conn) throws SQLException

{

try

{

rs.close();

ps.close();

conn.close();

}

catch(SQLException e)

{

e.printStackTrace();

}

}

}

创建查询方法类(按名字查询和按学号查询):

package micro.dao;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import micro.entity.Student;

import com.mysql.jdbc.PreparedStatement;

public class SearchDao {

/**

* @param micro

* @return

* @throws SQLException

*/

// static String sql = "select * from Student where ? = ?";

public static int getIdByName(String name) throws SQLException {

int id = -1;

try {

Connection conn = Dao.getConnection();

PreparedStatement ps = (PreparedStatement) conn

.prepareStatement("select * from Student where name = ?");

// ps.setString(1, "name");

ps.setString(1, name);

ResultSet rs = ps.executeQuery();

// List list = new ArrayList();

while (rs.next()) {

id = rs.getInt("id");

}

Dao.close(rs, ps, conn);

} catch (SQLException e) {

e.printStackTrace();

}

return id;

}

/**

* @param id

* @return

* @throws SQLException

*/

public static String getNameById(int id) throws SQLException {

Connection conn;

String name = null;

try {

conn = Dao.getConnection();

PreparedStatement ps = (PreparedStatement) conn

.prepareStatement("select * from Student where id = ?");

// ps.setString(1, "");

ps.setInt(1, id);

ResultSet rs = ps.executeQuery();

while (rs.next()) {

name = rs.getString("name");

}

Dao.close(rs, ps, conn);

} catch (SQLException e) {

e.printStackTrace();

}

return name;

}

}

需要执行业务的servlet:

package micro.search;

import java.io.IOException;

import java.sql.SQLException;

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 micro.dao.SearchDao;

/**

* Servlet implementation class FindName

*/

@WebServlet("/FindName")

public class FindNameOrNo extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public FindNameOrNo() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

this.doPost(request, response);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

String username = request.getParameter("username");

int id = Integer.valueOf(request.getParameter("id"));

if(!username.equals(""))

{

try

{

int no = SearchDao.getIdByName(username);

request.setAttribute("id", no);

}

catch(SQLException e)

{

System.out.println("数据库出现异常");

e.printStackTrace();

}

request.getRequestDispatcher("/WEB-INF/IdResult.jsp").forward(request, response);

}

else

{

try

{

String name = SearchDao.getNameById(id);

request.setAttribute("name", name);

}

catch(SQLException e)

{

System.out.println("数据库出现异常");

e.printStackTrace();

}

request.getRequestDispatcher("/WEB-INF/NameResult.jsp").forward(request, response);

}

}

}

welcome.jsp页面:

pageEncoding="utf-8"%>

Insert title here

请输入学生姓名:
请输入学生学号:

type="text" name="id" />

返回学号的页面:

pageEncoding="utf-8"%>

Insert title here

查询结果对应的学号为:

返回名字的页面:

pageEncoding="utf-8"%>

Insert title here

该学号的同学名字为:

web.xml:

xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

version="2.5">

Query

micro.search.FindNameOrNo

Query

/myQuery

welcome.jsp

java 读取数据库中文信息,为何在jsp页面中出现乱码

有如下几种解决办法:1.保证项目的字符编码和每一个jsp页面的字符编码一致,如果不一致可能导致中文乱码问题

关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

找了这么久资料,总算解决了 感谢博客园:http://www.cnblogs.com/xsht/p/5275081.html 感谢百度:http://zhidao.baidu.com/link?url ...

【Java】数据库查询的数据直接以指定文件类型下载到本地(弹出下载框)

欲实现的功能目标:当点击下图的导出数据文件时弹出文件下载框,默认csv格式,用户自定义下载的本地路径 遇到的问题: 1.项目之前做过一次下载,但是是使用了本地文件模板.用输入流读取文件模板,插入数据, ...

jsp采用数据库连接池的方法获取数据库时间戳context.xml配置,jsp页面把时间格式化成自己需要的格式

<?xml version="1.0" encoding="UTF-8"?>

Java获得数据库查询结果的列数和行数,打印查询结果

Java连接数据库及简单操作见我以前的一篇随笔:http://www.cnblogs.com/meitian/p/5036332.html   一.获取查询结果的行数和列数 查询结果为ResultSe ...

js获取后台json数据显示在jsp页面元素

jsp id Today: 

Java Servlet 技术简介

Java Servlet 技术简介 Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么 ...

【Java】Java Servlet 技术简介

Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么,它们是如何工作的,如何使用它们来创 ...

JSP学习笔记(5)-Java Servlet

1.什么是Servlet? Servlet(Servlet Applet),全程Java Servlet,是用Java编写的服务器端程序,其主要功能在于交互式地浏览和修改数据,生成动态WEB内容.侠义 ...

随机推荐

添加OSG各种事件处理器

// add the state manipulator viewer.addEventHandler( new osgGA::StateSetManipulator(viewer.getCamera ...

后台调取前台js中的函数

Page.ClientScript.RegisterStartupScript(this.GetType(), "setPicType", "setPicType(2); ...

Android 控件知识点

一.引入布局 在xml文件中引入另一个布局 个人理解就是在父布局的某个位置在嵌套一个布局. 二.自定义 ...

基本数据类型范围大小&amp&semi;&amp&semi;字节大小

char -128 ~ +127 short -32767 ~ + 32768 unsigned short 0 ~ 65536 int -2147483648 ~ +2147483647 unsig ...

Jquery实现文本框输入提示

一些用户体验好的表单都会在文本框里设置输入提示,文本框获取焦点时,提示内容消息,如果未输入,失去焦点时又会出现提示. 网上找到一个比较好用的控件jquery.inputDefault.js 使用方法: ...

&lbrack;原&rsqb;获取openstack-pike安装包

linux version: CentOS 7.5.1804 #进入仓库配置目录 cd /etc/yum.repo.d/ #批量重命名所有文件 for files in `ls *`; do mv $ ...

HDU 1495 非常可乐【BFS】

题目链接:https://vjudge.net/problem/HDU-1495 转载于:https://www.cnblogs.com/ECJTUACM-873284962/p/6750320.ht ...

记录一则ORA-600 &lbrack;13011&rsqb;错误

环境:Solaris 10 + Oracle 11.2.0.1 现象:alert告警日志定期出现ORA-600 [13011]错误 1.故障现象 2.初步分析 3.匹配MOS 4.定位解决 1.故障现 ...

p2596 书架(Treap)

写平衡树修锅快修到死系列 我太蠢了 其实是平衡树裸体裸题 插入,删除,交换前驱或后继,查询rank和kth 维护一个pos数组,表示第i个书的编号 然后注意许许多多的细节,没了 #include &l ...

汇编,浮点运算符,fldpi&comma;fmul等指令说明&period;

协处理器指令系统 协处理器共有68条不同的指令,汇编程序在遇到协处理器指令助记符时,都会将其转换成机器语言的ESC指令,ESC指令代表了协处理器的操作码. 协处理器指令在执行过程中,需要访问内存单元时 ...

参与评论 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

徐长友

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值