网页注册写入数据库

发布于:2025-07-07 ⋅ 阅读:(22) ⋅ 点赞:(0)

下面是一个网页注册写入数据库的完整示例,使用:

  • 前端:HTML + Vue.js(可选)

  • 后端:Spring Boot(Java)

  • 数据库:MySQL


✅ 一、数据库表设计(MySQL)

CREATE DATABASE userdb;

USE userdb;

CREATE TABLE user(
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(100) NOT NULL,
    password VARCHAR(100) NOT NULL
);

✅ 二、后端 Spring Boot(Java)

1. Maven 依赖(pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <!-- MySQL JDBC 驱动 -->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.3.0</version> <!-- 或最新稳定版 -->
        </dependency>


    </dependencies>

2. 配置数据库(application.properties)

spring.application.name=webregister
spring.web.resources.static-locations=classpath:/static/
# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/userdb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
#本地mysql数据库密码为空所以为空
#若有则写上你的密码
spring.datasource.password=

# JPA 配置
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

# 建议手动指定数据库方言(避免 Hibernate 无法识别)
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

3. 实体类 User.java

package org.example.webregister;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;


@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String username;
    private String password;

    // Getter 和 Setter
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

4. 数据访问层 UserRepository.java

package org.example.webregister;

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Integer> {
    boolean existsByUsername(String username);
}


5. 控制器 UserController.java

package org.example.webregister;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api")
@CrossOrigin // 允许跨域访问
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @PostMapping("/register")
    public ResponseEntity<String> register(@RequestBody User user) {
        if (userRepository.existsByUsername(user.getUsername())) {
            return ResponseEntity.status(HttpStatus.CONFLICT).body("用户名已存在");
        }
        userRepository.save(user);
        return ResponseEntity.ok("注册成功");
    }
}

✅ 三、前端注册页面(HTML)

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>注册页面</title>
</head>
<body>
    <h2>用户注册</h2>
    <form id="regForm">
        用户名:<input type="text" id="username"><br><br>
        密码:<input type="password" id="password"><br><br>
        <button type="submit">注册</button>
    </form>

    <script>
        document.getElementById("regForm").addEventListener("submit", function(e) {
            e.preventDefault();

            const username = document.getElementById("username").value;
            const password = document.getElementById("password").value;

            fetch("http://localhost:8080/api/register", {
                method: "POST",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify({ username, password })
            })
            .then(res => res.text())
            .then(msg => alert(msg))
            .catch(err => console.error(err));
        });
    </script>
</body>
</html>

✅ 运行顺序:

  1. 启动 MySQL,并建表。

  2. 启动 Spring Boot 后端服务。

  3. 打开 HTML 页面,填写注册表单。

  4. 注册信息会写入数据库。

运行后,浏览器登录

http://localhost:8080/


网站公告

今日签到

点亮在社区的每一天
去签到