idea下使用servlet连接数据库在网页反应增删改查项目的简单基本实现

在这里插入图片描述
这是需要导入的包
还有如果是第一次做这种WEB连接SQL的项目记得找到你的tomcat文件下面的lib目录去把连接MySQL的jar包导进去,而不是单纯创建一个lib目录导入,不这样做会导致找不到网页从而发生404

一个超级简单的数据库
在这里插入图片描述

findAll.jsp
这里的代码其实是这样的
在这里插入图片描述
在这里插入图片描述

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>//这个C标签是需要导入c.tld文件的
<html>
<head>
    <title>国家级自贸网站</title>
    <script src="js/jquery-3.3.1.min.js"></script>
    <script type="text/javascript">

        function delCop(id) {


            $.ajax({
                url: "/delInfo.do",
                data: {"id": id},
                dataType: "json",
                type: "POST",
                success: function (res) {
                    alert("删除成功")
                },
                error: function () {
                    alert("删除成功")
                }


            })
        }

    </script>
</head>
<body>
<table>
    <tr>
        <th>组织名称</th>
        <th>地址</th>
        <th>组织管理人员</th>
        <th>组织id</th>
        <th>删除</th>
    </tr>
    <c:forEach items="${requestScope.list}" var="find">
        <tr>
            <td>${find.username}</td>
            <td>${find.address}</td>
            <td>${find.man}</td>
            <td>${find.id}</td>
            <td><input type="button" value="删除" onclick="delCop(${find.id})"></td>
        </tr>
    </c:forEach>
</table>
</body>
</html>

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <meta charset="UTF-8">
    <title>$Title$</title>
  </head>
  <body>
  <a href="findAll.do">查询组织的所有信息</a>
  <a href="updata.jsp">更新组织信息</a>
  <form action="insert.do"  method="post">
    请输入组织名字<input type="text" name="username"><br>
    请输入地址<input type="text" name="address"><br>
    请输入组织人员<input type="text" name="man"><br>
    请输入更新id<input type="text" name="id"><br>
    <input type="submit" value="增加">
  </form>
  </body>
</html>

updata.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="up.do"  method="post">
    请输入组织名字<input type="text" name="username"><br>
    请输入地址<input type="text" name="address"><br>
    请输入组织人员<input type="text" name="man"><br>
    请输入更新id<input type="text" name="id"><br>
    <input type="submit" value="更新">
</body>
</html>

ClassFind

public class ClassFind {

    private int id;

    @Override
    public String toString() {
        return "ClassFind{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", address='" + address + '\'' +
                ", man='" + man + '\'' +
                '}';
    }

    public ClassFind(int id, String username, String address, String man) {
        this.id = id;
        this.username = username;
        this.address = address;
        this.man = man;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getMan() {
        return man;
    }

    public void setMan(String man) {
        this.man = man;
    }

    private String username;
    private String address;
    private String man;


}

Delinfo

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.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/delInfo.do")
public class DelInfo  extends HttpServlet {
    private static final long serialVersionUID=1L;

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

//1导入驱动jar包
//2注册驱动
        request.setCharacterEncoding("utf-8");
        String id = request.getParameter("id");
        System.out.println("id:"+id);
        try {
            Class.forName("com.mysql.cj.jdbc.Driver") ;//这里会抛出异常 throws Exception直接全部抛出 只抛出一个的话后面还是会接着叫你抛出异常
//3获取连接对线
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC", "root", "root");
//“jdbc:mysql://localhost:3306(这里数据库端口)/db3(这里是要连接的数据库) ?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC(8.x.x以后连接数据库需要在后面这一串加入不然会报错说你时区不对)”,“root(这里是账号)”, “root(这里是密码)”
//4定义SQL语句
            System.out.println("连接成功");

            String sql ="delete from zuzi where id = "+id;
//5获取执行SQL的对象 statement
            PreparedStatement pst =connection.prepareStatement(sql);
//            执行SQL语句返回提交
            int result=pst.executeUpdate();
            if (result>0){
                System.out.println("返回成功");
                request.getRequestDispatcher("/findAll.do").forward(request,response);
            }
            connection.close();
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }
}
FindServlet

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.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/findAll.do")
public class FindServlet extends HttpServlet {
    private static final long serialVersionUID=1L;
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//1导入驱动jar包
//2注册驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver") ;//这里会抛出异常 throws Exception直接全部抛出 只抛出一个的话后面还是会接着叫你抛出异常
//3获取连接对线
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC", "root", "root");
//“jdbc:mysql://localhost:3306(这里数据库端口)/db3(这里是要连接的数据库) ?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC(8.x.x以后连接数据库需要在后面这一串加入不然会报错说你时区不对)”,“root(这里是账号)”, “root(这里是密码)”
//4定义SQL语句
            System.out.println("连接成功");
            String sql ="select * from zuzi";
//5获取执行SQL的对象 statement
            PreparedStatement pst=connection.prepareStatement(sql);
//            执行SQL语句返回提交
            ResultSet result= pst.executeQuery();
            List<ClassFind>list=new ArrayList<>();
            while (result.next()){
                int id = result.getInt("id");
                String username = result.getString("username");
                String address = result.getString("address");
                String man = result.getString("man");
                ClassFind find =new ClassFind(id,username,address,man);
                list.add(find);
            }
            connection.close();
            //绑定数据d
            request.setAttribute("list",list);
          //请求转发到find
            request.getRequestDispatcher("findAll.jsp").forward(request,response);


        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }


    }

}
InsertServlet


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.io.IOException;
import java.sql.*;

@WebServlet("/insert.do")
public class InsertServlet extends HttpServlet {
    private static final long serialVersionUID=1L;
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String username=request.getParameter("username");
        String address=request.getParameter("address");
        String man=request.getParameter("man");
        System.out.println("组织名称"+username+"地址" +address+"组织人员"+man);
//1导入驱动jar包
//2注册驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver") ;//这里会抛出异常 throws Exception直接全部抛出 只抛出一个的话后面还是会接着叫你抛出异常
//3获取连接对线
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC", "root", "root");
//“jdbc:mysql://localhost:3306(这里数据库端口)/db3(这里是要连接的数据库) ?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC(8.x.x以后连接数据库需要在后面这一串加入不然会报错说你时区不对)”,“root(这里是账号)”, “root(这里是密码)”
//4定义SQL语句
            System.out.println("连接成功");
            String sql = "insert into zuzi(username,address,man) values(?,?,?)";
//创建预编译对象
            PreparedStatement pst =connection.prepareStatement(sql);

            pst.setString(1,username);
            pst.setString(2,address);
            pst.setString(3,man);
            int result=pst.executeUpdate();
            if (result>0){
                System.out.println("返回成功");
                request.getRequestDispatcher("/findAll.do").forward(request,response);
            }
            connection.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

}

UpServlet

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.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

@WebServlet("/up.do")
public class UpServlet extends HttpServlet {
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1导入驱动jar包
//2注册驱动
       request.setCharacterEncoding("utf-8");
        String username=request.getParameter("username");
        String address=request.getParameter("address");
        String man =request.getParameter("man");
        String id =request.getParameter("id");
        try {
            Class.forName("com.mysql.cj.jdbc.Driver") ;//这里会抛出异常 throws Exception直接全部抛出 只抛出一个的话后面还是会接着叫你抛出异常
//3获取连接对线
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC", "root", "root");
//“jdbc:mysql://localhost:3306(这里数据库端口)/db3(这里是要连接的数据库) ?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC(8.x.x以后连接数据库需要在后面这一串加入不然会报错说你时区不对)”,“root(这里是账号)”, “root(这里是密码)”
//4定义SQL语句
            System.out.println("连接成功");

//5获取执行SQL的对象 statement

            String sql ="update zuzi set username=?,address=?,man=? where id=?";

//            PreparedStatement pst = connection.prepareStatement("");
            执行SQL语句返回提交
//            pst.setString(1,username);
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setString(1,username);
            preparedStatement.setString(2,address);
            preparedStatement.setString(3,man);
            preparedStatement.setString(4,id);
            int result=preparedStatement.executeUpdate();
            preparedStatement.executeUpdate();
            if (result>0){
                System.out.println("返回成功");
                request.getRequestDispatcher("/findAll.do").forward(request,response);
            }
            else {
                System.out.println("跟新失败");
            }
            connection.close();

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }


    }
首先,需要下载并安装MySQL数据库,然后创建一个数据库,并创建一个表格存储数据。 接下来,打开IntelliJ IDEA,创建一个Web应用程序工程。 在工程的src目录下,创建一个Java类,用于连接和操作数据库。 ``` import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBHelper { private static String driver = "com.mysql.jdbc.Driver"; private static String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8"; private static String user = "root"; private static String password = "123456"; public static Connection getConn() { Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } return conn; } public static void closeConn(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static int executeUpdate(String sql) { Connection conn = null; Statement stmt = null; int result = 0; try { conn = getConn(); stmt = conn.createStatement(); result = stmt.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } finally { closeConn(conn); } return result; } public static ResultSet executeQuery(String sql) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = getConn(); stmt = conn.createStatement(); rs = stmt.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); } return rs; } } ``` 这个类中包含了获取数据库连接、关闭数据库连接、执行增删改查语句的方法。 接下来,创建一个ServletJava类,用于处理Http请求,并调用DBHelper中的方法操作数据库。 ``` import java.io.IOException; import java.io.PrintWriter; import java.sql.ResultSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class StudentServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public StudentServlet() { super(); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); String action = request.getParameter("action"); if ("add".equals(action)) { String name = request.getParameter("name"); int age = Integer.parseInt(request.getParameter("age")); String gender = request.getParameter("gender"); String sql = "insert into student(name,age,gender) values('" + name + "'," + age + ",'" + gender + "')"; int result = DBHelper.executeUpdate(sql); if (result > 0) { out.print("<script>alert('添加成功');window.location.href='index.jsp';</script>"); } else { out.print("<script>alert('添加失败');history.go(-1);</script>"); } } else if ("delete".equals(action)) { int id = Integer.parseInt(request.getParameter("id")); String sql = "delete from student where id=" + id; int result = DBHelper.executeUpdate(sql); if (result > 0) { out.print("<script>alert('删除成功');window.location.href='index.jsp';</script>"); } else { out.print("<script>alert('删除失败');history.go(-1);</script>"); } } else if ("update".equals(action)) { int id = Integer.parseInt(request.getParameter("id")); String name = request.getParameter("name"); int age = Integer.parseInt(request.getParameter("age")); String gender = request.getParameter("gender"); String sql = "update student set name='" + name + "',age=" + age + ",gender='" + gender + "' where id=" + id; int result = DBHelper.executeUpdate(sql); if (result > 0) { out.print("<script>alert('修改成功');window.location.href='index.jsp';</script>"); } else { out.print("<script>alert('修改失败');history.go(-1);</script>"); } } else if ("query".equals(action)) { String name = request.getParameter("name"); String sql = "select id,name,age,gender from student where name like '%" + name + "%'"; ResultSet rs = DBHelper.executeQuery(sql); StringBuilder sb = new StringBuilder("<table border='1'>"); sb.append("<tr><th>编号</th><th>姓名</th><th>年龄</th><th>性别</th><th>操作</th></tr>"); try { while (rs.next()) { sb.append("<tr>"); sb.append("<td>" + rs.getInt("id") + "</td>"); sb.append("<td>" + rs.getString("name") + "</td>"); sb.append("<td>" + rs.getInt("age") + "</td>"); sb.append("<td>" + rs.getString("gender") + "</td>"); sb.append("<td><a href='update.jsp?id=" + rs.getInt("id") + "'>修改</a> <a href='StudentServlet?action=delete&id=" + rs.getInt("id") + "'>删除</a></td>"); sb.append("</tr>"); } } catch (Exception e) { e.printStackTrace(); } finally { DBHelper.closeConn(DBHelper.getConn()); } sb.append("</table>"); out.print(sb.toString()); } else { response.sendRedirect("index.jsp"); } out.flush(); out.close(); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } ``` 这个Servlet中包含了添加学生记录、删除学生记录、修改学生记录、查询学生记录的方法。 最后,在Web应用程序中创建JSP页面,用于添加、修改、查询和展示学生信息的操作。 以查询学生信息页面query.jsp为例: ``` <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>学生信息查询</title> </head> <body> <h2>学生信息查询</h2> <form action="StudentServlet" method="get"> 姓名:<input type="text" name="name"> <input type="hidden" name="action" value="query"> <input type="submit" value="查询"> </form> <hr> <h3>查询结果</h3> <%= request.getAttribute("resultStr") %> </body> </html> ``` 在这个页面中,用户可以输入学生姓名,然后点击查询按钮,调用Servlet中的查询学生记录的方法,返回查询结果并显示在页面上。 这样就完成了使用Idea连接MySQL数据库Servlet进行增删改查操作的示例。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值