赞
踩
一、实验目的:
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. 写出实验报告(在实验系统完成)
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>
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(); } } } }
druid.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///day14
# day14为创建的数据库,根据不同的数据库进行修改
username=root
password=5000
initialSize=5
maxActive=10
maxWait=3000
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>
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.掌握在JSP中使用JDBC连接数据库的步骤及方法。
2.掌握在Tomcat中使用数据库连接池,预编译语句连接数据库。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。