简单的Javaweb增删改查项目

161 阅读4分钟

前端页面展示

image.png

1. 项目介绍

1.1 开发环境

JDK17 + MySQL8 + Tomcat10.1 + JDBCTemplate + Druid

1.2 Maven坐标

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-tx</artifactId>
  <version>5.2.20.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>5.2.20.RELEASE</version>
</dependency>
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.4.11</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>2.0.7</version>
</dependency>
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.28</version>
</dependency>
<dependency>
  <groupId>com.mysql</groupId>
  <artifactId>mysql-connector-j</artifactId>
  <version>8.0.33</version>
</dependency>
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.2.16</version>
</dependency>
<dependency>
  <groupId>jakarta.servlet</groupId>
  <artifactId>jakarta.servlet-api</artifactId>
  <version>6.0.0</version>
</dependency>
<dependency>
  <groupId>jakarta.servlet.jsp</groupId>
  <artifactId>jakarta.servlet.jsp-api</artifactId>
  <version>3.1.0</version>
</dependency>
<dependency>
  <groupId>org.glassfish.web</groupId>
  <artifactId>jakarta.servlet.jsp.jstl</artifactId>
  <version>3.0.1</version>
</dependency>
<dependency>
  <groupId>jakarta.servlet.jsp.jstl</groupId>
  <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
  <version>3.0.0</version>
</dependency>
<dependency>
  <groupId>org.apache.taglibs</groupId>
  <artifactId>taglibs-standard-spec</artifactId>
  <version>1.2.5</version>
</dependency>
<dependency>
  <groupId>org.apache.taglibs</groupId>
  <artifactId>taglibs-standard-impl</artifactId>
  <version>1.2.5</version>
</dependency>
<dependency>
  <groupId>commons-beanutils</groupId>
  <artifactId>commons-beanutils</artifactId>
  <version>1.9.4</version>
</dependency>

1.3 配置文件

1.3.1 日志文件logback.xml

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

1.3.2 Druid.properties配置文件

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///day17
username=root
password=root
initialSize=5
maxActive=10
maxWait=3000

1.3.2 数据库工具类

import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

/**
 * JDBC工具类 使用Durid连接池
 */
public class JdbcUtils {

    private static DataSource ds ;

    static {

        try {
            //1.加载配置文件
            Properties pro = new Properties();
            //使用ClassLoader加载配置文件,获取字节输入流
            InputStream is = JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties");
            pro.load(is);

            //2.初始化连接池对象
            ds = DruidDataSourceFactory.createDataSource(pro);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

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


    /**
     * 获取连接Connection对象
     */
    public static Connection getConnection() throws SQLException {
        return  ds.getConnection();
    }
}

1.4 项目结构

image.png

2. 项目地址

gitee.com/yerui404/si…

3.数据库初始化

/*
 Navicat MySQL Data Transfer

 Source Server         : 本地MySQL
 Source Server Type    : MySQL
 Source Server Version : 80034 (8.0.34)
 Source Host           : localhost:3306
 Source Schema         : day17

 Target Server Type    : MySQL
 Target Server Version : 80034 (8.0.34)
 File Encoding         : 65001

 Date: 30/08/2023 20:37:25
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `gender` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `age` int NULL DEFAULT NULL,
  `address` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `qq` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '张三', '男', 13, '广东', '12345', 'zhangsan@itcast.cn', 'zs', '123');
INSERT INTO `user` VALUES (2, '李四', '女', 15, '湖南', '88888111', 'ls@itcast.cn', 'ls', '123');
INSERT INTO `user` VALUES (5, '张三', '男', 28, '北京市朝阳区123号', '123456789', 'zhangsan@example.com', 'zhangsan', '密码123');
INSERT INTO `user` VALUES (6, '李四', '女', 22, '上海市浦东新区456号', '987654321', 'lisi@example.com', 'lisi', '安全密码');
INSERT INTO `user` VALUES (7, '王五', '男', 30, '广州市天河区789号', '543216789', 'wangwu@example.com', 'wangwu', '测试123');
INSERT INTO `user` VALUES (8, '赵六', '女', 25, '深圳市南山区567号', '567890123', 'zhaoliu@example.com', 'zhaoliu', '我的密码');
INSERT INTO `user` VALUES (9, '刘七', '男', 27, '成都市武侯区789号', '789012345', 'liuqi@example.com', 'liuqi', '123456');
INSERT INTO `user` VALUES (10, '陈八', '女', 23, '重庆市渝中区678号', '987654321', 'chenba@example.com', 'chenba', 'abc123');
INSERT INTO `user` VALUES (11, '张九', '男', 29, '武汉市江汉区567号', '654321987', 'zhangjiu@example.com', 'zhangjiu', 'hello123');
INSERT INTO `user` VALUES (12, '李十', '女', 31, '南京市鼓楼区456号', '789012345', 'lishi@example.com', 'lishi', 'world456');
INSERT INTO `user` VALUES (13, '刘十一', '男', 24, '西安市雁塔区345号', '987654321', 'liuyi@example.com', 'liuyi', 'welcome123');
INSERT INTO `user` VALUES (14, '陈十二', '女', 26, '杭州市西湖区234号', '678901234', 'chener@example.com', 'chener', 'test456');
INSERT INTO `user` VALUES (15, '王十三', '男', 28, '苏州市姑苏区123号', '987654321', 'wangsan@example.com', 'wangsan', 'pass123');
INSERT INTO `user` VALUES (16, '张十四', '女', 29, '天津市和平区234号', '123456789', 'zhangsi@example.com', 'zhangsi', 'secure456');
INSERT INTO `user` VALUES (17, '李十五', '男', 30, '深圳市福田区345号', '987654321', 'liwu@example.com', 'liwu', 'testpass123');
INSERT INTO `user` VALUES (18, '赵十六', '女', 27, '上海市静安区456号', '567890123', 'zhaoliu@example.com', 'zhaoliu', 'mypassword');
INSERT INTO `user` VALUES (19, '刘十七', '男', 25, '广州市海珠区567号', '543216789', 'liuqi@example.com', 'liuqi', 'hellopass');
INSERT INTO `user` VALUES (20, '陈十八', '女', 23, '北京市东城区678号', '789012345', 'chener@example.com', 'chener', 'world123');
INSERT INTO `user` VALUES (21, '王十九', '男', 28, '成都市锦江区789号', '654321987', 'wangs@example.com', 'wangs', 'testpass');
INSERT INTO `user` VALUES (22, '李二十', '女', 24, '重庆市南岸区890号', '987654321', 'liere@example.com', 'liere', 'mypass123');
INSERT INTO `user` VALUES (23, '刘廿一', '男', 26, '武汉市汉阳区901号', '123456789', 'liuyi@example.com', 'liuyi', 'passworld');
INSERT INTO `user` VALUES (24, '陈廿二', '女', 25, '南京市秦淮区012号', '987654321', 'chener@example.com', 'chener', 'hello456');
SET FOREIGN_KEY_CHECKS = 1;