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双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

MySQL错误代码2058和2059的解决办法

《MySQL错误代码2058和2059的解决办法》:本文主要介绍MySQL错误代码2058和2059的解决办法,2058和2059的错误码核心都是你用的客户端工具和mysql版本的密码插件不匹配,... 目录1. 前置理解2.报错现象3.解决办法(敲重点!!!)1. php前置理解2058和2059的错误

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是