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

相关文章

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二