Servlet+JDBC+HTML+MySQL+------查询综合案例
Posted 雨天的木子李
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet+JDBC+HTML+MySQL+------查询综合案例相关的知识,希望对你有一定的参考价值。
分享第二十四篇励志语句
对自己狠一点,逼自己努力,再过五年你将会感谢今天发狠的自己,恨透今天懒惰自卑的自己,既然认准了一条路,那就坚持走下去,命运不会辜负每一个认真而努力的人。
目录
在mysql中新建一个servletdatabase数据库,专门用来学习servlet操作数据库
1 案例需求
实现登录功能,登录成功后显示所有管理员信息,登录失败给出“账号或密码错误,无法登录”提示信息
2 创建表admin并添加数据
#创建表admin
CREATE TABLE IF NOT EXISTS `admin`(
`username` VARCHAR(20) PRIMARY KEY,
`password` VARCHAR(20) NOT NULL,
`phone` VARCHAR(11) UNIQUE NOT NULL,
`address` VARCHAR(20) NOT NULL
);
#向admin表中插入数据
INSERT INTO `admin`(`username`,`password`,`phone`,`address`)
VALUES('张三','123456','13112345678','安徽合肥蜀山区');
INSERT INTO `admin`(`username`,`password`,`phone`,`address`)
VALUES('李四','123456','13822334455','安徽合肥高新区');
3 创建Web项目
创建Web项目adminProject01,在项目下创建包目录结构如下,并导入相关jar包及配置文件
-
com.cxyzxc.www.dao包:数据访问层接口
-
com.cxyzxc.www.dao.impl包:数据访问层接口实现类
-
com.cxyzxc.www.entity包:实体类
-
com.cxyzxc.www.service包:业务逻辑层接口
-
com.cxyzxc.www.service.impl包:业务逻辑层接口实现类
-
com.cxyzxc.www.servlet包:Servlet类
-
com.cxyzxc.www.utils包:工具类
-
database.properties:数据库连接及连接池配置文件
4 database.properties文件
5 DBUtile类代码
package com.cxyzxc.www.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class DBUtils
// 声明一个连接池对象
private static DruidDataSource druidDataSource;
static
// 实例化配置文件对象
Properties properties = new Properties();
try
// 加载配置文件内容
InputStream is = DBUtils.class
.getResourceAsStream("/database.properties");
properties.load(is);
// 创建连接池
druidDataSource = (DruidDataSource) DruidDataSourceFactory
.createDataSource(properties);
catch (IOException e)
e.printStackTrace();
catch (Exception e)
e.printStackTrace();
//返回一个数据源
public static DataSource getDataSource()
return druidDataSource;
6 Admin实体类
package com.cxyzxc.www.entity;
public class Admin
private String username;
private String password;
private String phone;
private String address;
public Admin()
public Admin(String username, String password, String phone, String address)
this.username = username;
this.password = password;
this.phone = phone;
this.address = address;
public String getUsername()
return username;
public void setUsername(String username)
this.username = username;
public String getPassword()
return password;
public void setPassword(String password)
this.password = password;
public String getPhone()
return phone;
public void setPhone(String phone)
this.phone = phone;
public String getAddress()
return address;
public void setAddress(String address)
this.address = address;
@Override
public String toString()
return "Admin" +
"username='" + username + '\\'' +
", password='" + password + '\\'' +
", phone='" + phone + '\\'' +
", address='" + address + '\\'' +
'';
7 AdminDao接口
package com.cxyzxc.www.dao;
import com.cxyzxc.www.entity.Admin;
import java.util.List;
public interface AdminDao
//查询用户(查询单个)
Admin selectOneByUsernameAndPassword(String username, String password);
//查询所有用户
List<Admin> selectAll();
8 AdminDaoImpl实现类
package com.cxyzxc.www.dao.impl;
import com.cxyzxc.www.dao.AdminDao;
import com.cxyzxc.www.entity.Admin;
import com.cxyzxc.www.utils.DBUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import java.sql.SQLException;
import java.util.List;
public class AdminDaoImpl implements AdminDao
// 创建QueryRunner对象,并传递一个数据源对象
private final QueryRunner QUERYRUNNER = new QueryRunner(DBUtils.getDataSource());
@Override
public Admin selectOneByUsernameAndPassword(String username, String password)
String sql = "SELECT * FROM `admin` WHERE `username` = ? AND `PASSWORD`=?;";
Object[] args = username, password;
try
return QUERYRUNNER.query(sql, new BeanHandler<Admin>(Admin.class), args);
catch (SQLException e)
e.printStackTrace();
return null;
@Override
public List<Admin> selectAll()
String sql = "SELECT * FROM `admin`;";
try
return QUERYRUNNER.query(sql, new BeanListHandler<Admin>(Admin.class));
catch (SQLException e)
e.printStackTrace();
return null;
9 AdminService接口
package com.cxyzxc.www.service;
import com.cxyzxc.www.entity.Admin;
import java.util.List;
public interface AdminService
Admin login(String username, String password);
List<Admin> selectAllAdmin();
10 AdminServiceImpl实现类
package com.cxyzxc.www.service.impl;
import com.cxyzxc.www.service.AdminService;
import com.cxyzxc.www.dao.AdminDao;
import com.cxyzxc.www.dao.impl.AdminDaoImpl;
import com.cxyzxc.www.entity.Admin;
import java.util.List;
public class AdminServiceImpl implements AdminService
private final AdminDao ADMINDAO = new AdminDaoImpl();
@Override
public Admin login(String username, String password)
return ADMINDAO.selectOneByUsernameAndPassword(username, password);
@Override
public List<Admin> selectAllAdmin()
return ADMINDAO.selectAll();
11 html页面
11.1 login.html页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录页面</title>
<link type="text/css" rel="stylesheet" href="css/login.css"/>
</head>
<body>
<div>
<form action="LoginServlet" method="post">
<p>
账号:<input type="text" name="username"/>
</p>
<p>
密码:<input type="password" name="password"/>
</p>
<p>
<input type="submit" value="登录"/>
</p>
</form>
</div>
</body>
</html>
11.2 login.css
*
margin: 0;
padding: 0;
div
width: 400px;
height: 100px;
background-color: #ccc;
margin: 30px auto;
padding-top: 30px;
text-align: center;
p
margin-top: 10px;
input
outline: none;
11.3 table.css
*
margin: 0;
padding: 0;
table
margin: 20px auto;
width: 500px;
height: 100px;
text-align: center;
12 LoginServlet
package com.cxyzxc.www.servlet;
import com.cxyzxc.www.service.AdminService;
import com.cxyzxc.www.service.impl.AdminServiceImpl;
import com.cxyzxc.www.entity.Admin;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet
private final AdminService ADMINSERVICE = new AdminServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
req.setCharacterEncoding("UTF-8");
//获取数据
String username = req.getParameter("username");
String password = req.getParameter("password");
Admin admin = ADMINSERVICE.login(username, password);
resp.setContentType("text/html;charset=UTF-8");
PrintWriter printWriter = resp.getWriter();
if (admin != null)
printWriter.println("<html>");
printWriter.println("<head>");
printWriter.println("<title>登录成功</title>");
printWriter.println("</head>");
printWriter.println("<body>");
printWriter.println("<h2>登录成功</h2>");
printWriter.println("</body>");
printWriter.println("</html>");
else
printWriter.println("<html>");
printWriter.println("<head>");
printWriter.println("<title>登录失败</title>");
printWriter.println("</head>");
printWriter.println("<body>");
printWriter.println("<h2>账号或密码错误,无法登录</h2>");
printWriter.println("</body>");
printWriter.println("</html>");
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException
doGet(req, resp);
13 ShowAllAdminServlet
package com.cxyzxc.www.servlet;
import com.cxyzxc.www.service.AdminService;
import com.cxyzxc.www.service.impl.AdminServiceImpl;
import com.cxyzxc.www.entity.Admin;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
@WebServlet("/ShowAllAdminServlet")
public class ShowAllAdminServlet extends HttpServlet
private final AdminService ADMINSERVICE = new AdminServiceImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
req.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");
PrintWriter printWriter = resp.getWriter();
List<Admin> adminList = ADMINSERVICE.selectAllAdmin();
if (adminList.size() != 0)
printWriter.println("<html>");
printWriter.println("<head>");
printWriter.println("<title>所有admin</title>");
printWriter.println("<link type=\\"text/css\\" rel=\\"stylesheet\\" href=\\"css/table.css\\" />");
printWriter.println("</head>");
printWriter.println("<table border='1px' cellspacing='0'>");
printWriter.println("<tr>");
printWriter.println("<th>账号</th>");
printWriter.println("<th>密码</th>");
printWriter.println("<th>手机号码</th>");
printWriter.println("<th>住址</th>");
printWriter.println("<th>操作</th>");
printWriter.println("</tr>");
for (Admin admin : adminList)
printWriter.println("<tr>");
printWriter.println("<td>" + admin.getUsername() + "</td>");
printWriter.println("<td>" + admin.getPassword() + "</td>");
printWriter.println("<td>" + admin.getPhone() + "</td>");
printWriter.println("<td>" + admin.getAddress() + "</td>");
printWriter.println("<td><a href=\\"#\\">修改</a> <a href=\\"#\\">删除</a></td>");
printWriter.println("</tr>");
printWriter.println("</table>");
printWriter.println("</html>");
else
printWriter.println("<html>");
printWriter.println("<head>");
printWriter.println("<title>所有admin</title>");
printWriter.println("</head>");
printWriter.println("<body>");
printWriter.println("<h2>当前没有用户</h2>");
printWriter.println("</body>");
printWriter.println("</html>");
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException
doGet(req, resp);
好了,这些就是单独查和全部查的全部方法,感谢大家支持
今天的分享就到此结束了
创作不易点赞评论互关三连
JSP+Servlet+JDBC+mysql实现的学生成绩管理系统
项目简介
本系统基于JSP+Servlet+Mysql
一个基于JSP+Servlet+Jdbc的学生成绩管理系统。涉及技术少,易于理解,适合JavaWeb初学者学习使用。
难度等级:入门
技术栈
编辑器
Eclipse Version: 2019-12 (4.14.0)
前端技术
基础:html+css+JavaScript
后端技术
Jsp+Servlet
数据库:mysql 5.7.27(个人测试使用)
jdk版本:1.8.0_181(个人测试使用)
tomcat版本:8.5.34(个人测试使用)
本地运行
Eclipse环境准备
导入项目
若有疑惑可查看视频版本。
1.下载zip直接解压或安装git后执行克隆命令
git clone https://gitee.com/zzdoreen/SSMS.git
2.使用eclipse导入项目,配置jdk、tomcat和所需jar包。
项目所依赖jar包在WebContent/WEB-INF/lib文件夹下。
3.打开Navicat For Mysql,创建sams数据库,并运行sams.sql。
4.修改db.properties中数据库相关的内容。
5.发布到tomcat中,具体访问链接看tomcat配置,若未修改则http://localhost:8080/sushe为登录页面。
该系统分为3种账号。
管理员初始账号:1 系统管理员初始密码:123
教师初始账号:1123 教师初始密码:11
学生初始账号: 160341 学生初始密码:11
注意
- 该项目未声明mysql、jdk、tomcat使用版本,以上版本号均为个人测试使用版本。
- 注意修改项目完整代码com.db.DBHelper中数据库相关的内容。
项目截图
声明
- 该项目收集于gitee,本人只是代为说明使用技术、注意点及启动方式,帮助大家进行学习交流。
- 若通过gitee地址无法下载该项目或无法正常运行,可私信我,本人免费协助。
推荐阅读
- JSP+Servlet+JDBC+DBCP2实现在线购书系统
- JSP+Servlet+JDBC实现的shine网上书城
- JSP+Servlet+JDBC实现的云端汽修后台管理系统
- JSP+Servlet+JDBC实现的学生信息管理系统
- JSP+Servlet+C3P0+Mysql实现的YCU movies电影网站
- JSP+Servlet+C3P0+Mysql实现的图书馆管理系统
本篇已收录于个人GitHub仓库https://github.com/coderzcr/JavaWeb-Project-Source-Share,欢迎Star。
以上是关于Servlet+JDBC+HTML+MySQL+------查询综合案例的主要内容,如果未能解决你的问题,请参考以下文章
JSP+Servlet+JDBC+mysql实现的学生成绩管理系统
基于jsp+servlet+jdbc+MySQL的学生管理系统