当前位置:   article > 正文

实验五 JSP中使用数据库_jsp链接连接数据库实验

jsp链接连接数据库实验


前言

一、实验目的:
1.掌握在JSP中使用JDBC连接数据库的步骤及方法。
2.掌握在Tomcat中使用数据库连接池,预编译语句连接数据库。
二、内容和主要步骤:
1.编写页面form.html完成用户ID,姓名,密码,住址的输入,姓名不为空,ID唯一提交给DBProcess.jsp;
2.编写JDBC工具类(名字自定)完成数据库的连接和释放;
3.编写JSP页面DBProcess.jsp,读取form.html中的参数信息,在该页面通过JDBC工具类连接数据库并使用预处理语句完成向用户表user中保存信息。
4在Tomcat中正确配置DBCP,使用数据库连接池,编写页面show.jsp显示用户表user中的所有信息
三、要求:
1. 完成上述任务,编写代码调试并使之运行正确;
2. 写出实验报告(在实验系统完成)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

具体操作

form.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>form2</title>
</head>
<body>
<form action="DBProcess.jsp" method="post">
    <input name="id" placeholder="请输入id" type="text"><br>
    <input name="username" placeholder="请输入用户名" type="text"><br>
    <input name="password" placeholder="请输入密码" type="password"><br>
    <input name="address" placeholder="请输入地址" type="text">
    <br>
    <input type="submit" value="注册">
</form>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

JDBCUtils.java

package test5;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/*JDBC工具类,使用Durid连接池*/
public class JDBCUtils {
    private static DataSource ds;

    static {
        try {
            //加载配置文件
            Properties pro = new Properties();
            //使用ClassLoader加载配置文件,获取字节输入流
            InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
            pro.load(is);
            //初始化连接池对象
            ds = DruidDataSourceFactory.createDataSource(pro);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /*获取链接池对象*/
    public static DataSource getDataSourse() {
        return ds;
    }

    /*获取链接Connection对象*/
    public static Connection getConnection() throws SQLException {
        return ds.getConnection();
    }
    /*释放资源*/
    public static void close(Statement stmt, Connection conn) {
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void close(ResultSet rs, Statement stmt, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83

druid.properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///day14
# day14为创建的数据库,根据不同的数据库进行修改
username=root
password=5000
initialSize=5
maxActive=10
maxWait=3000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

DBProcess.jsp

<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.SQLException" %>
<%@ page import="test5.JDBCUtils" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>DBProcess</title>
</head>
<body>
<%
    //设置编码格式,防止乱码
    request.setCharacterEncoding("utf-8");
    response.setHeader("Content-Type", "text/html;charset=utf-8");
    String id = request.getParameter("id");
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    String address = request.getParameter("address");
    Connection conn = null;
    PreparedStatement prstmt = null;
    try {
        //注册驱动,获取连接对象
        conn = JDBCUtils.getConnection();
        //开启事务
        conn.setAutoCommit(false);
        //定义sql
        String sql = "insert into user values (?,?,?,?)";

        //预编译sql,获取执行sql对象
        prstmt = conn.prepareStatement(sql);

        //给占位符赋值
        prstmt.setString(1, id);
        prstmt.setString(2, username);
        prstmt.setString(3, password);
        prstmt.setString(4, address);

        prstmt.executeUpdate();

        //提交事务
        conn.commit();

    } catch (SQLException e) {
        //事务回滚
        try {
            if (conn != null) {
                conn.rollback();
            }
        } catch (SQLException e2) {
            e2.printStackTrace();
        }
        e.printStackTrace();
    } finally {
        JDBCUtils.close(prstmt, conn);
    }
    response.sendRedirect("show.jsp");
%>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

show.jsp

<%@ page import="java.sql.*" %>
<%@ page import="test5.JDBCUtils" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>show</title>
</head>
<body>
<%
    //设置编码格式,防止乱码
    request.setCharacterEncoding("utf-8");
    response.setHeader("Content-Type", "text/html;charset=utf-8");
    Connection conn = null;

    Statement stmt = null;

    ResultSet rs = null;
    try {
        //注册驱动,获取连接对象
        conn = JDBCUtils.getConnection();
        //创建执行sql对象
        stmt = conn.createStatement();
        //创建sql语句
        String sql = "select * from day14.user";
        //执行sql语句
        rs = stmt.executeQuery(sql);
        //处理结果
        while (rs.next()) {//游标向下移动一行,true下一行有数据,false下一行无数据
            String id = rs.getString("id");//第一列
            String username = rs.getString("username");//第二列
            String password = rs.getString("password");//第三列
            String address = rs.getString("address");//第四列
            response.getWriter().write("<h1>" + id + "<br>" + username + "<br>" + password + "<br>" + address +
                    "</h1>");
        }
    } catch (SQLException throwables) {
        throwables.printStackTrace();
    } finally {
        JDBCUtils.close(rs, stmt, conn);
    }
%>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

运行截图
请添加图片描述
请添加图片描述
请添加图片描述


总结

1.掌握在JSP中使用JDBC连接数据库的步骤及方法。
2.掌握在Tomcat中使用数据库连接池,预编译语句连接数据库。
  • 1
  • 2

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/575384
推荐阅读
相关标签
  

闽ICP备14008679号