jdbc+servlet+jsp+mysql简单的例子--gxy

2024-01-21 11:30

本文主要是介绍jdbc+servlet+jsp+mysql简单的例子--gxy,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天去面试,叫我做一个简单的注册并查询的例子,发现用多了springmvc,struts2尽然把这个最基础的忘记了。今天写一个最简单的稳固一下。其中有些参考了其他博主,再次感谢!

目录结构:
这里写图片描述

用到的jar也在图中。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"><display-name>simple-project</display-name><servlet><servlet-name>StudentsAdd</servlet-name><servlet-class>servlet/StudentsAdd</servlet-class></servlet><servlet-mapping><servlet-name>StudentsAdd</servlet-name><url-pattern>/studentsAdd</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>注册</title><body><form action="addUser" method="post" >用户名:<input type="text" value="" name="name"/><br/>密码:<input type="password" value="" name="password"/><br/><input type="submit" value="提交"/></form><table border="1"><tr><td>编号</td><td>姓名</td>  </tr><c:forEach items="${list}" var="stu"><tr><td>${stu.id }</td><td>${stu.name }</td> </tr></c:forEach></table></body>
</html>

实体类:

package model;public class Student {public long id;public String name;private String password;public void setPassword(String password) {this.password = password;}public String getPassword() {return password;}public long getId() {return id;}public void setId(long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

servlet类:

1.查询的

package servlet;import java.io.IOException;
import java.util.ArrayList;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 model.Student;
import util.DBConnection;/*** Servlet implementation class StudentsAdd*/
@WebServlet("/StudentsAdd")
public class StudentsAdd extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public StudentsAdd() {super();}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {DBConnection db = new DBConnection();  String sql = "select * from user";  ArrayList<Student> list = db.getStudentList(sql);  request.setAttribute("list", list);  request.getRequestDispatcher("index.jsp").forward(request, response);  }}

2.增加的:

package servlet;import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Random;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 model.Student;
import util.DBConnection;/*** 添加用户* @author Administrator**/
@WebServlet("/addUser")
public class AddUser extends HttpServlet{private static final long serialVersionUID = 422040094756504779L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException ,IOException {String name = req.getParameter("name");String password  = req.getParameter("password");Student stu = new Student();stu.setId(new Date().getTime());stu.setName(name);stu.setPassword(password);DBConnection dbc = new DBConnection();String sql = "insert into user values("+new Random().nextInt(100)+",'"+name+"','"+password+"')";dbc.ExecuteDel(sql);sql = "select * from user";  ArrayList<Student> list = dbc.getStudentList(sql);req.setAttribute("list", list);  req.getRequestDispatcher("index.jsp").forward(req, resp);  };}

数据库连接工具类:

package util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;import model.Student;public class DBConnection {/*** 驱动类名称*/private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";/*** 数据库连接字符串   jdbc:mysql://localhost:3306/test 这种方式只对本地的数据库有用       test为数据库名称*/private static final String DATABASE_URL = "jdbc:mysql://localhost:3306/test";/*** 数据库用户名*/private static final String USER_NAME = "root";/*** 数据库密码*/private static final String PASSWORD = "123456";/*** 数据库连接类*/private static Connection conn;/*** 数据库操作类*/private static Statement stmt;// 加载驱动static{try {Class.forName(DRIVER_CLASS);} catch (Exception e) {System.out.println("加载驱动错误");System.out.println(e.getMessage());}}// 取得连接private static Connection getConnection(){try {conn = DriverManager.getConnection(DATABASE_URL, USER_NAME, PASSWORD);} catch (Exception e) {System.out.println("取得连接错误");System.out.println(e.getMessage());}return conn;}/*** 执行 增、删、改 操作* @param sql*/public void ExecuteDel(String sql){try {stmt = getConnection().createStatement();int rows = stmt.executeUpdate(sql);if(rows >= 1){System.out.println("成功删除.....");} else {System.out.println("删除失败.....");}} catch (Exception e) {System.out.println("statement取得错误");System.out.println(e.getMessage());}finally {try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}}/*** 读取数据库中的数据(查询操作)* @param sql* @return*/public ArrayList<Student> getStudentList(String sql){ArrayList<Student> list = new ArrayList<Student>();// 取得数据库操作对象try {stmt = getConnection().createStatement();   } catch (Exception e) {System.out.println("statement取得错误");System.out.println(e.getMessage());return null;} try {// 查询数据库对象,返回记录集(结果集)ResultSet rs = stmt.executeQuery(sql);// 循环记录集,查看每一行每一列的记录while (rs.next()) {// 第一列 snoint sno = rs.getInt(1);// 第2列 snameString sname = rs.getString(2);Student stu = new Student();stu.setId(sno);stu.setName(sname);list.add(stu);}} catch (Exception e) {System.out.println(e.getMessage());}return list;}
}

完成了。

访问方式:
http://localhost:8888/simple-jdbc/StudentsAdd

完成,提供下载地址:

http://download.csdn.net/download/u013154103/9962304

这篇关于jdbc+servlet+jsp+mysql简单的例子--gxy的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/629371

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十