JSP连接MySQL数据库并实现增删改查功能

本文是实现创建web项目,并实现web项目连接MySQL数据库,实现对数据库的增删查改。

本文需要的工具:

1.Intellij IDEA

2.Tomcat 8.5.466

3.java运行环境 jdk 1.8

4.数据库MySQL 8.0.21

5.java数据连接驱动 jdbc 8.0.21.

1.创建一个Web项目,并加入tomcat,按照一下步骤创建并加入tomca服务器。

 

 

2.加入mysql-connector-java-8.0.21.jar,需要在web目录下的Web-INF下创建一个lib目录把jar包加入进去。还要将jar包加入到项目中,详细过程见下图。

以上完成之后就可以进行数据库的操作,不过进行之前我们需要先测试tomcat服务器是否可以运行,下面,我们玉兴index.jsp页面是否可以正确的打开,在我这里是可以正常打开的,那么我们进行下一步连接数据库(默认数据库已经创建数据库和表)首先要编写连接数据库的代码,我们需要在src目录下床架一个dao目录(持久层)用于存放数据库操作的代码,一个domain目录(用于存放实体类),一个Test目录(用于测试代码),在dao层下创建一个connect类首先来连接数据库。

1.创建connect.java

2.测试数据库驱动(jar文件)是否加载成功。

3.连接成功,我们再写个个查询数据的查询语句用来查询表中的全部数据,并将结果输出在.jsp文件中。想要在页面中查询数据,我们需要在页面中写一个java程序片,用来连接数据库和调用对象中的查询数据库全部数据的某个方法,并将查询到的结果输出到页面的表中显示出来(查询操作需要将返回的结果集封装成对象,一行数据为一个对象,所以需要创建一个Student.java,并生成该类的set,get方法,该类放在src/domain目录下)。

1.查询全部数据

 public List<Student> selectAll(){
        String selectAll="select * from student";
        try {
            statement = connection.createStatement();
        } catch (SQLException e) {
            e.printStackTrace(); 
        }
        try {
             List<Student> list=new ArrayList<>();
            resultSet = statement.executeQuery(selectAll);
            while (resultSet.next()){
                Student student=new Student();
               student.setId(resultSet.getInt("id"));
               student.setName(resultSet.getString("name"));
                student.setEmail(resultSet.getString("email"));
                student.setAge(resultSet.getInt("age"));
                list.add(student);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                resultSet.close();
                statement.close();
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            } 
        }
        return list;
    }
<%@ page import="java.sql.*" %><%--
  Created by IntelliJ IDEA.
  User: Jerry
  Date: 2021/4/15
  Time: 10:38
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="connect.Dao" %>
<%@ page import="java.util.List" %>
<%@ page import="domain.Student" %>
<html>
  <head>
    <title>查询学生</title>
  </head>
  <body>
  <form action="selectNameStudent.jsp" method="post">
  输入姓名:
  <input type="text" name="name">
  <input type="submit" value="查询">
  </form>
  <form action="insert.jsp" method="post">
  <input type="submit" value="插入数据">
  </form>
  <br>
<%
    Dao dao=new Dao();
    Connection connection=dao.getConnection();
    if (connection!=null){
     //out.println("数据库连接成功");
      List<Student> list= dao.selectAll();
        out.print("<table border='1' cellspacing='1'><tr>");
        out.print("<caption>人员信息表</caption>");
        out.print("<tr><th width='60'>序号</th>"
                + "<th width='100'>id</th>"
                + "<th width='100'>姓名</th>"
                + "<th width='120'>邮箱</th>"
                + "<th width='100'>年龄</th>"
                + "<th width='100'>操作</th>");
        int count = 0;
        for (Student student:list){
            out.print("<tr>");
            out.print("<td>" + (++count) + "</td>");
            out.print("<td>" + student.getId()+ "</td>");
            out.print("<td>" + student.getName() + "</td>");
            out.print("<td>" + student.getEmail() + "</td>");
            out.print("<td>" + student.getAge()+ "</td>");
            out.print("<td>" + "<a href=delete.jsp?id=" + student.getId() + ">删除" + "</a>"
                    + " / <a href=update.jsp?id=" + student.getId() + ">修改" + "</a>"+ "</td>");
            out.print("</tr>");
        }
        out.print("</table>");
        connection.close();
        connection.close();
    }else {
        out.println("数据库连接失败");
    }
%>
  </body>
</html>

代码解释:

首先解释select All()方法,该方法是用来查询所有数据的所以会产生一个结果集resultSet,然后再创建一个list集合将结果集数据遍历出来,放在student对象中,将对象放在list集合中,最后将集合通过循环的方法输出,在jsp文件中的程序片中调用连接数据库的方法,和调用selectAll()方法,实现数据库的查询。效果如下图。

2.按姓名查询(where子句)

按姓名查询的操作与查询全部数据的方法一样只不过是查询方法多了一个参数用来接收从页面传递过来的姓名参数,将参数写入sql语句。在这里我只把代码放在这里不做解释。

 public List<Student> selectName(String Name){
        String selectstudent="select * from student where name=?";
        try {
            String sql = "SELECT * FROM student where name=?";
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setString(1, Name);
            System.out.println(Name);
            resultSet=preparedStatement.executeQuery();
           while (resultSet.next()){
               Student student=new Student();
               student.setId(resultSet.getInt("id"));
               student.setName(resultSet.getString("name"));
               student.setEmail(resultSet.getString("email"));
               student.setAge(resultSet.getInt("age"));
               list.add(student);
           }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                resultSet.close();
                preparedStatement.close();
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return list;
    }
<%@ page import="connect.Dao" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="domain.Student" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: Jerry
  Date: 2021/4/16
  Time: 17:49
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>查询结果</title>
</head>
<body>
<%
    request.setCharacterEncoding("utf-8");
    String Name=request.getParameter("name");
    Dao dao=new Dao();
    Connection connection=dao.getConnection();
    if (connection!=null){
        out.println("数据库连接成功");
        List<Student> list= dao.selectName(Name);
        out.print("<table border='1' cellspacing='1'><tr>");
        out.print("<caption>人员信息表</caption>");
        out.print("<tr><th width='60'>序号</th>"
                + "<th width='100'>id</th>"
                + "<th width='100'>姓名</th>"
                + "<th width='120'>邮箱</th>"
                + "<th width='100'>年龄</th>"
                + "<th width='100'>操作</th>");
        int count = 0;
        for (Student student:list){
            out.print("<tr>");
            out.print("<td>" + (++count) + "</td>");
            out.print("<td>" + student.getId()+ "</td>");
            out.print("<td>" + student.getName() + "</td>");
            out.print("<td>" + student.getEmail() + "</td>");
            out.print("<td>" + student.getAge()+ "</td>");
            out.print("<td>" + "<a href=deleteuser.jsp?id=" + student.getId() + ">删除" + "</a>"
                    + " / <a href=updateuser.jsp?id=" + student.getId() + ">修改" + "</a>"+ "</td>");
            out.print("</tr>");
        }
        out.print("</table>");
    }else {
        out.println("数据库连接失败");
    }
%>
</body>
</html>

执行结果

3.增加数据

    public int insert(int Id,String Name,String Email,int Age){
        String sql="insert into student values(?,?,?,?) ";
        int i = 0;
        try {
            
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setInt(1,Id);
            preparedStatement.setString(2,Name);
            preparedStatement.setString(3,Email);
            preparedStatement.setInt(4,Age);
            //System.out.println(id);
            i=preparedStatement.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                preparedStatement.close();
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }

        }
        return i;
    }
<%@ page import="connect.Dao" %>
<%@ page import="java.sql.Connection" %><%--
  Created by IntelliJ IDEA.
  User: Jerry
  Date: 2021/4/16
  Time: 20:35
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>插入数据</title>
</head>
<body>
<form action="info.jsp" method="post">
<h4 align="center">插入数据</h4>
<table align="center" border="1" cellspacing="2">
    <tr>
        <td width="80" align="center">id:</td>
        <td width="120"><input type="text" name="id"></td>
    </tr>
    <tr>
        <td width="80" align="center">姓名:</td>
        <td width="120"><input type="text" name="name"></td>
    </tr>
    <tr>
        <td width="80" align="center">邮箱:</td>
        <td width="120"><input type="text" name="email"></td>
    </tr>
    <tr>
        <td width="80" align="center">年龄:</td>
        <td width="120"><input type="text" name="age"></td>
    </tr>
    <tr>
        <th width="120" colspan="2"><input type="submit" value="提交"></th>
    </tr>
</table>
</form>

</body>
</html>
<%@ page import="connect.Dao" %>
<%@ page import="java.sql.Connection" %><%--
  Created by IntelliJ IDEA.
  User: Jerry
  Date: 2021/4/16
  Time: 21:12
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>提示页</title>
</head>
<body>
<%
    request.setCharacterEncoding("utf-8");
    String id=request.getParameter("id");
    String Name=request.getParameter("name");
    String Email=request.getParameter("email");
    String age=request.getParameter("age");
    int ID=Integer.parseInt(id);
    int Age=Integer.parseInt(age);
    Dao dao=new Dao();
    Connection connection=dao.getConnection();
    if (connection!=null){
         int i=dao.insert(ID,Name,Email,Age);
          out.print("成功添加"+i+"条数据");
        out.print("添加成功"+"<a href=index.jsp?id=>返回首页" + "</a>");
    }else {
        out.print("数据库连接数据失败");
        out.print("添加失败"+"<a href=index.jsp?id=>返回首页" + "</a>");
    }
%>
</body>
</html>

代码解释:增加数据的方法需要一个int类型的返回值用来表示增加数据的记录,方法的参数为数据库列名,数据类型需要与数据库中列的类型保持一致,在这里,我们需要用   int ID=Integer.parseInt(id);转化一下数据类型。

效果

 

4.删除数据

   public int deleteStudent(int ID){
        String sql="delete  FROM student where id=?";
        int i=0;
        try {
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setInt(1,ID);
            i=preparedStatement.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                preparedStatement.close();
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }

        }
        return i;
    }
<%@ page import="connect.Dao" %>
<%@ page import="java.sql.Connection" %><%--
  Created by IntelliJ IDEA.
  User: Jerry
  Date: 2021/4/16
  Time: 21:18
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>删除数据</title>
</head>
<body>
<%
    String id=request.getParameter("id");
    int ID=Integer.parseInt(id);
    out.print(ID);
    Dao dao=new Dao();
    Connection connection=dao.getConnection();
    if(connection!=null){

        int i=dao.deleteStudent(ID);
        out.print("成功删除"+i+"条数据");
        out.print("删除成功"+"<a href=index.jsp?id=>返回首页" + "</a>");
    }else {
        out.print("数据库连接失败");
        out.print("删除失败"+"<a href=index.jsp?id=>返回首页" + "</a>");
    }
%>
</body>
</html>

代码解释:该方法需要一个int类型的返回值,用来记录删除数据的条数。和一个参数用来接收方法需要的参数来填充sql语句。

效果:(我们这里有两个1005.所以会删除两条数据,这里是为验证返回值。)

5.修改数据

 public int update(String name,String email,int age,int id){
        String sql="update Student set name =?,email=?,age=? where id=?";
        int i=0;
        try {
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setString(1,name);
            preparedStatement.setString(2,email);
            preparedStatement.setInt(3,age);
            preparedStatement.setInt(4,id);
           i=preparedStatement.executeUpdate();

        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                preparedStatement.close();
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }

        }
        return i;
    }
<%@ page import="connect.Dao" %>
<%@ page import="java.sql.Connection" %><%--
  Created by IntelliJ IDEA.
  User: Jerry
  Date: 2021/4/16
  Time: 21:47
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>修改数据</title>
</head>
<body>
<%
    String id;
    id=request.getParameter("id");
    int ID=Integer.parseInt(id);
%>
<form action="info2.jsp">
    学号:<input type="text" value="<%=ID%>" name="id">
    姓名:<input type="text" name="name">
    邮箱:<input type="text" name="email">
    年龄:<input type="text" name="age" >
    <input type="submit" value="修改">
</form>
</body>
</html>
<%@ page import="connect.Dao" %>
<%@ page import="java.sql.Connection" %><%--
  Created by IntelliJ IDEA.
  User: Jerry
  Date: 2021/4/16
  Time: 21:50
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>提示页</title>
</head>
<body>
<%
    String id=request.getParameter("id");
    String Name=request.getParameter("name");
    String Email=request.getParameter("email");
    String age=request.getParameter("age");
    int ID=Integer.parseInt(id);
    int Age=Integer.parseInt(age);
    out.print(ID);
    Dao dao=new Dao();
    Connection connection=dao.getConnection();
    if (connection!=null){
       int i=dao.update(Name,Email,Age,ID);
       out.print("成功修改了"+i+"条数据");
        out.print("修改成功"+"<a href=index.jsp?id=>返回首页" + "</a>");
    }else{
        out.print("数据库连接失败");
        out.print("修改失败"+"<a href=index.jsp?id=>返回首页" + "</a>");
    }
%>
</body>
</html>

代码解释:该方法的返回值int记录修改数据的条数,方法参数为需要修改的内容,数据类型需要与数据库相匹配,要注意数据类型的转换。

效果:

### 回答1: 要连接MySQL数据库并进行JSP数据库增删改查操作,需要以下步骤: 1. 下载并安装MySQL数据库,并创建一个数据库和表格。 2. 在JSP页面中导入MySQL的JDBC驱动程序。 3. 在JSP页面中使用JDBC API连接MySQL数据库。 4. 使用JDBC API执行SQL语句,进行数据库增删改查操作。 例如,要查询数据库中的数据,可以使用以下代码: <%@ page import="java.sql.*" %> <% Connection conn = null; Statement stmt = null; ResultSet rs = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "password"); stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT * FROM mytable"); while (rs.next()) { out.println(rs.getString("column1") + " " + rs.getString("column2")); } } catch (Exception e) { e.printStackTrace(); } finally { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } %> 其中,"mydatabase"是数据库名称,"root"是数据库用户名,"password"是数据库密码,"mytable"是表格名称,"column1"和"column2"是表格中的列名。其他的数据库增删改查操作也可以使用类似的代码实现。 ### 回答2: IDEA连接MySQL数据库 1. 首先,在IDEA中选择菜单栏的“File”->“New”->“Project”,然后选择“Java”->“Java Application”,点击“Next”。 2. 在创建的新项目中,在“Project SDK”中选择自己安装的Java开发工具包,确保版本合适。 3. 点击“Next”选择项目名称和项目路径等信息。 4. 在创建项目后,进入IDEA的“Project Structure”(或者使用快捷键“Ctrl+Alt+Shift+S”)。 5. 在“Project Settings”中选择“Modules”,在“Dependencies”选项卡中点击“+”号,选择“Library”->“Java”。 6. 点击“New Library”创建一个新的库,然后将相应的JAR或者文件夹添加到库中进行导入。 7. 在MySQL数据库中新建一个数据库,创建相应的表格和列。 8. 在IDEA中新建一个Java文件(或者类)用于编写代码。使用JDBC连接MySQL进行增删改查等操作。 JSP数据库增删改查 1. 首先,在JSP页面上添加一个表单用于获取用户的输入数据。 2. 对于查询操作,需要在JSP页面中编写相应的SQL语句。可以使用JSTL标签库或者EL表达式来简化代码。 3. 对于添加操作,需要在JSP页面中获取用户输入的数据,然后使用JDBC向MySQL数据库中插入数据。 4. 对于修改操作,同样需要在JSP页面中获取用户输入的数据,然后使用JDBC更新MySQL数据库中的数据。 5. 对于删除操作,需要在JSP页面中获取用户想要删除的数据项,然后使用JDBC从MySQL数据库中删除该数据项。 6. 在JSP中使用基本的Java语言编写相关的逻辑和代码,确保程序的正确性和稳定性。 7. 注意进行异常捕获和错误报告等操作,确保程序的健壮性。同时要注意防止SQL注入等安全问题。 ### 回答3: 在Web开发中,使用IDEA连接MySQL并在JSP中进行数据库操作是非常常见的工作,其具体步骤如下: 1. 设置MySQL的JDBC驱动 首先,在IDEA中需要设置MySQL的JDBC驱动,这可以通过在“Project Structure”中添加“Library”来实现。具体操作步骤如下: ① 点击IDEA顶部菜单栏中的“File”,然后点击“Project Structure”。 ② 在“Project Structure”中选择“Modules”,然后在右侧的“Dependencies”选项卡中点击“+”按钮。 ③ 在弹出的“Choose Libraries”中选择“MySQL JDBC Driver”,然后点击“OK”。 2. 配置MySQL数据库连接 接下来,需要配置MySQL数据库连接。具体操作步骤如下: ① 在IDEA中打开“Database”工具窗口,可以通过点击IDEA顶部菜单栏中的“View” -> “Tool Windows” -> “Database”来打开。 ② 在“Database”工具窗口中点击“+”按钮,然后选择“MySQL”。 ③ 在弹出的“Data Source Properties”中填入需要连接MySQL数据库的信息,包括数据库URL、用户名和密码等。 URL格式为:"jdbc:mysql://主机名:端口/数据库名"。 ④ 点击“Test Connection”按钮,确保连接成功后点击“OK”按钮。 3. 在JSP中进行数据库操作 最后,在JSP文件中进行数据库操作。需要在JSP文件中引入MySQL的JDBC驱动,并使用Java代码实现数据库增删改查操作。具体操作步骤如下: ① 在JSP文件中添加以下Java代码,引入MySQL的JDBC驱动: <%@ page import="java.sql.*" %> <%@ page import="javax.sql.*" %> ② 在Java代码中使用“Connection”对象连接MySQL数据库: Connection con = null; Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://主机名:端口/数据库名"; String user = "用户名"; String password = "密码"; con = DriverManager.getConnection(url, user, password); ③ 在Java代码中使用“Statement”对象执行SQL语句,实现数据库增删改查操作: Statement stmt = null; ResultSet rs = null; String sql = "SQL语句"; stmt = con.createStatement(); rs = stmt.executeQuery(sql); 以上就是使用IDEA连接MySQL并在JSP中进行数据库操作的具体步骤,希望能对你有所帮助。
评论 57
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值