简单的jsp+servlet+jdbc+mysql实现用户增删改查
2018-11-27 00:44
786 查看
jsp+servlet+jdbc+mysql实现用户增删改查
项目下载地址…里面包含了项目文件,jar,bootstrap,jquery,sql
也可以联系797726548QQ群获取下载
-
运行环境
.jdk1.8.0_102
.eclipse Neon.2 Release (4.6.2)
.Tomcat 8.0.52
.mysql 5 7 -
项目准备
.创建web项目
.架包
.目录结构
.数据库创建
user表
.连接数据库的工具类DBUtils.java
package com.zsx.utils; import java.io.FileReader; import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; public class DBUtils { private static String driver; private static String url; private static String user; private static String password; static Connection conn = null; static { Properties properties = new Properties(); // 创建一个properties对象 Reader inReader; // 一个reader属性; try { String path = Thread.currentThread().getContextClassLoader().getResource("jdbc.properties").getPath(); inReader = new FileReader(path); // 用这个方法获取properties配置文件; properties.load(inReader); // 加载load内部的地址; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } // 通过properties.getProperty("driver");方法获取值 driver = properties.getProperty("driver"); url = properties.getProperty("url"); user = properties.getProperty("user"); password = properties.getProperty("password"); } /** * 打开数据库连接 * * @return */ public static Connection open() { try { Class.forName(driver); System.out.println("连接成功......"); return DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out.println("连接数据库失败...."); } return null; } /** * 关闭数据库连接 * * @return */ public static Connection close() { if (conn != null) { try { conn.close();// 关闭数据库 System.out.println("关闭..."); } catch (Exception e) { e.printStackTrace(); System.out.println("数据库关闭失败..."); } } return null; } }
需要在src下新建一个 jdbc.properties
内容如下,
.driver:驱动
.url:数据库的地址jdbc:mysql://localhost:3306/+这里数据库名?字符集
.user:数据库用户名
.password:数据库密码
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/jspdemo?useUnicode=true&characterEncoding=utf8 user=root password=root
- 进入主题
实体类User.java
package com.zsx.bean; public class User { private Integer id; private String userName; private String password; public User(Integer id, String userName, String passwrod) { super(); this.id = id; this.userName = userName; this.password = passwrod; } public User() { super(); // TODO Auto-generated constructor stub } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPasswrod() { return password; } public void setPasswrod(String passwrod) { this.password = passwrod; } }
.servlet 编写
添加
AddServlet.java
package com.zsx.servlet; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; 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.zsx.utils.DBUtils; /** * Servlet implementation class LoginServlet */ @WebServlet("/addServlet") public class AddServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * 添加数据 * * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); if (username != null && password != null) { Connection conn = DBUtils.open(); /// 获得数据库连接 String sql = "insert into user(user_name, password) values(?,?);"; try { PreparedStatement prtmt = conn.prepareStatement(sql); // 预编译 prtmt.setString(1, username); // 给第一个? 传值 prtmt.setString(2, password); // 给第二个? 传值 int resInt = prtmt.executeUpdate(); // 如果添加成功返回影响数 request.setAttribute("resInt", resInt); request.getRequestDispatcher("/findAllServlet").forward(request, response); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { DBUtils.close(); // 关闭数据库连接 } } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); doGet(request, response); } }
DelServlet.java
package com.zsx.servlet; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; 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 com.zsx.utils.DBUtils; /** * Servlet implementation class DelServlet */ @WebServlet("/DelServlet") public class DelServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * 删除数据 * * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id = request.getParameter("id"); // 传入id; if (id != null) { Connection conn = DBUtils.open();// 获得数据连接 String sql = "delete from user where id = ?"; try { PreparedStatement prtmt = conn.prepareStatement(sql); // 预编译 prtmt.setString(1, id); // 给id赋值 int resInt = prtmt.executeUpdate(); // 执行sql返回影响行数; request.setAttribute("resInt", resInt); request.getRequestDispatcher("/findAllServlet").forward(request, response); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { DBUtils.close(); // 关闭数据库连接 } } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); doGet(request, response); } }
UpdateServlet.java
package com.zsx.servlet; import java.io.IOException; import java.sql.Connection; 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 java.sql.PreparedStatement; import java.sql.SQLException; import com.zsx.utils.DBUtils; /** * Servlet implementation class UpdateServlet */ @WebServlet("/UpdateServlet") public class UpdateServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * 更新数据 * * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id = request.getParameter("id"); String username = request.getParameter("username"); String password = request.getParameter("password"); if (id != null && username != null || password != null) { // 获得数据库连接 Connection conn = DBUtils.open(); String sql = "update user set user_name=?,password=? where id=?"; // sql语句 try { PreparedStatement prtmt = conn.prepareStatement(sql); // 预编译语句 prtmt.setString(1, username); // 给第一个? 添加数据 prtmt.setString(2, password); // 给第二个? 添加数据 prtmt.setString(3, id); // 给第三个? 添加数据 int resInt = prtmt.executeUpdate(); // 执行 request.setAttribute("resInt", resInt); // 返回影响的行数 request.getRequestDispatcher("/findAllServlet").forward(request, response); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { DBUtils.close(); // 关闭数据库连接 } } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); doGet(request, response); } }
FindAllServlet.java
package com.zsx.servlet; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; 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.zsx.bean.User; import com.zsx.utils.DBUtils; /** * Servlet implementation class FindAllServlet */ @WebServlet("/findAllServlet") public class FindAllServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * 查询所有用户 * * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<User> userList = new ArrayList<User>(); // 创建一个list集合,用于装user集合 Connection conn = DBUtils.open(); // 打开数据库连接 String sql = " select id,user_name,password from user ;"; try { PreparedStatement prtmt = conn.prepareStatement(sql); ResultSet rs = prtmt.executeQuery(); while (rs.next()) { int id = rs.getInt("id"); String username = rs.getString("user_name"); String password = rs.getString("password"); User user = new User(); /// 实例化user user.setId(id); user.setUserName(username); user.setPasswrod(password); userList.add(user); } request.setAttribute("userList", userList); request.getRequestDispatcher("/user_list.jsp").forward(request, response); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { DBUtils.close(); // 关闭数据库连接 } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); doGet(request, response); } }
.前端页面
用了bootstrap前端框架美化界面,在使用bootstrap之前需要引入jquery框架,在后面我会细说
bootstrap下载地址…
1b023
jquery下载地址…
将两个插件引入项目
将下载来的bootstrap拷贝到WebContext下如上图
将jquery-1.11.1.js放入js文件夹下
.编写欢迎页面
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>欢迎页面</title> </head> <body> <center> <h1> <a href="findAllServlet">用户信息</a> </h1> </center> </body> </html>
user_list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% String path = request.getContextPath(); %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="<%=path%>/resource/bs/js/jquery-1.11.1.js"></script> <!-- 引入jquery --> <link rel="stylesheet" href="<%=path%>/resource/bs/css/bootstrap.css"> <!-- 引入bootstrap.css --> <script src="<%=path%>/resource/bs/js/bootstrap.min.js"></script><!-- 引入bootstrap.min.js --> <title>用户列表</title> </head> <body> <section class="container"> <div class="row"> <div class="col-md-3"> <button class="btn btn-danger" data-toggle="modal" data-target="#addModal">新增</button> </div> </div> <table class="table table-striped table-bordered table-hover"> <th>ID</th> <th>用户名</th> <th>密码</th> <th>操作</th> <c:forEach items="${ userList }" var="list"> <tr> <td>${list.id }</td> <td>${list.userName }</td> <td>${list.passwrod }</td> <td colspan="2"><button class="btn btn-primary edBtn" data-toggle="modal" data-target="#edModal" value="${list.id }" n="${ list.userName}" p="${list.passwrod }">编辑</button> <button class="btn btn-danger delBtn" data-toggle="modal" data-target=".delModal" value="${list.id }">删除</button></td> </tr> </c:forEach> </table> </section> </body> <div class="modal fade delModal" tabindex="-1" role="dialog" aria-labelledby="gridSystemModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="gridSystemModalLabel">提示</h4> </div> <div class="modal-body"> <h4>真的不要了吗?</h4> </div> <div class="modal-footer"> <form action="DelServlet"> <input id="delid" name="id" value="" hidden> <button type="button" class="btn btn-primary" data-dismiss="modal">留着</button> <button type="submit" class="btn btn-danger">删了</button> </form> </div> </div> <!-- /.modal-content --> </div> <!-- /.modal-dialog --> </div> <!-- /.modal --> <!-- 编辑模态框 --> <div class="modal fade" id="edModal" tabindex="-1" role="dialog" aria-labelledby="edModal"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="exampleModalLabel">用户信息</h4> </div> <form action="UpdateServlet" method="post"> <div class="modal-body"> <input id="edId" name="id" value="" hidden> <div class="form-group"> <label for="username" class="control-label">用户名:</label> <input type="text" name="username" class="form-control" id="username" value="${user.userName }" required> </div> <div class="form-group"> <label for="password" class="control-label">密 码:</label> <input type="password" name="password" class="form-control" id="password" value="${user.password }" required> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">取消</button> <button type="submit" class="btn btn-primary">更新</button> </div> </form> </div> </div> </div> <!-- 添加模态框 --> <div class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-labelledby="edModal"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> <h4 class="modal-title" id="exampleModalLabel">用户信息</h4> </div> <form action="addServlet" method="post"> <div class="modal-body"> <input id="edId" name="id" value="" hidden> <div class="form-group"> <label for="username" class="control-label">用户名:</label> <input type="text" name="username" class="form-control" value="" required> </div> <div class="form-group"> <label for="password" class="control-label">密 码:</label> <input type="password" name="password" class="form-control" value="" required> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">取消</button> <button type="submit" class="btn btn-primary">添加</button> </div> </form> </div> </div> </div> <script type="text/javascript"> // 删除按钮 $(".delBtn").on("click", function() { $("#delid").val($(this).val()); // 获取当前点击按钮的值value值,并赋值给删除模态框的<input name="id" }); // 编辑按钮 $(".edBtn").on("click", function() { $("#edId").val($(this).val()); // 获取当前点击按钮的值value值,并赋值给编辑模态框的<input name="id" $("#username").val($(this).attr("n")); //取按钮上的自定义属性值 $("#password").val($(this).attr("p")); //取按钮上的自定义属性值 }); </script> </html>
.启动项目
欢迎页
用户信息展示
新增用户
更新用户
删除用户
如果这些功能都实现了,恭喜你!!!
相关文章推荐
- 简单的jsp+servlet+jdbc+mysql实现用户增删改查
- 基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)
- 基于Servlet、JSP、JDBC、MySQL的一个简单的用户注册模块(附完整源码)
- 基于Servlet、JSP、JDBC、MySQL的一个简单的用户注冊模块(附完整源代码)
- jsp+servlet+jdbc 实现crud 最简单的版本
- jsp+Mysql实现简单用户登陆
- jsp+servlet+mybatis+oracle+Tomcat实现数据库用户增删改查功能
- JDBC+Servlet+JSP+Mysql写的一个简单的登录注册
- jsp+servlet+jdbc实现对数据库的增删改查
- JSP+Servlet+JDBC+MySQL实现表单生成
- 使用servlet,jdbc将mysql中数据显示在jsp页面中,且实现直接删除数据库数据
- android-servlet-mysql servlet代码实现用户登陆 (结合上一篇jdbc封装里面的方法)
- 实践---原生jsp+servlet+jdbc+mysql实现分页功能
- JSP+MySql+Servlet实现用户登录
- jdbc_mysql增删改查用户简单操作!分包进行!
- 服务器搭建:servlet+dao+javabean+jsp实现简单的用户登录(一)
- 4 JSP+Servlet + JDBC 实现简单的登录验证模块
- jsp+servlet实现最简单的增删改查代码分享
- 用JSP+Servlet+JavaBean模式实现一个简单的登录网页设计(JSP+Tomcat+MySQL)
- jsp+servlet+jdbc+mysql的增删改查心得