当前位置: 首页 > news >正文

湘潭做网站品牌磐石网络wordpress 柚子皮

湘潭做网站品牌磐石网络,wordpress 柚子皮,网站建设服务哪里便宜,wordpress无头像文章目录 一、今天的学习内容总结1. JDBC基础概念2. 数据库连接与操作流程3. 基本CRUD操作4. 项目结构规范 二、目前项目结构与文件功能说明三、实现今日功能(JDBC CRUD)详细步骤1. 添加数据库依赖(MySQL示例)2. 创建数据库表4. …

文章目录

  • 一、今天的学习内容总结
    • 1. JDBC基础概念
    • 2. 数据库连接与操作流程
    • 3. 基本CRUD操作
    • 4. 项目结构规范
  • 二、目前项目结构与文件功能说明
  • 三、实现今日功能(JDBC + CRUD)详细步骤
    • 1. 添加数据库依赖(MySQL示例)
    • 2. 创建数据库表
    • 4. UserService 增删改查核心代码
    • 5. 编写对应 Servlet 实现“新增用户”功能
    • 6. JSP表单举例
    • 7. 新建register_success.jsp
    • 8. 运行图例:

一、今天的学习内容总结

1. JDBC基础概念

  • JDBC(Java Database Connectivity)是 Java 提供的访问数据库的标准 API。
  • 主要包括加载数据库驱动、建立连接、发送SQL语句、处理结果、关闭连接等步骤。

2. 数据库连接与操作流程

  • 通过 JDBC 连接数据库(通常是 MySQL、Oracle、SQLServer 等)。
  • 主要用到 Connection、Statement、PreparedStatement、ResultSet 等核心类。

3. 基本CRUD操作

  • CRUD 是指数据库的增(Create)、删(Delete)、改(Update)、查(Read)四种基本操作。
  • 用 SQL 语句分别实现数据的插入、删除、修改和查询。

4. 项目结构规范

  • 遵循 MVC(Model-View-Controller)结构进行项目开发。
  • controller:处理请求(如 LoginServlet)。
  • model:处理业务逻辑(如 UserService),后续可添加 DAO 层操作数据库。
  • webapp:存放 JSP 页面(如 login.jsp、success.jsp、fail.jsp)。

二、目前项目结构与文件功能说明

  • LoginServlet.java(控制器):处理登录表单请求,调用 UserService 进行验证,判断跳转成功/失败页面,或后续实现数据库交互。
  • UserService.java(业务层):目前模拟账号密码校验和 Cookie 相关操作,后续可在这里添加数据库 CRUD 方法。
  • JSP 文件(视图层):如 login.jsp 负责展示登录页面,success.jsp 展示成功页面等。
  • web.xml:已配置默认首页为 login.jspweb。

三、实现今日功能(JDBC + CRUD)详细步骤

下面以“用户信息的增删改查(CRUD)”为例,给出典型实现流程(假设操作 users 表,字段如 id, username, password)。
首先需要idea连接数据库,mysql安装配置教程可以看此教程
连接数据库可以看此教程
连接好后如图:
在这里插入图片描述

1. 添加数据库依赖(MySQL示例)

<!-- 在 pom.xml 文件添加 MySQL 依赖 -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.33</version>
</dependency>

图例:
在这里插入图片描述

2. 创建数据库表

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

图例:

在这里插入图片描述## 3. 编写 JDBC 工具类(推荐复用)

// com.example.util.JDBCUtils
public class JDBCUtils {private static final String URL = "jdbc:mysql://localhost:3306/yourdb?useSSL=false&serverTimezone=UTC";private static final String USER = "root";private static final String PASSWORD = "yourpassword";static {try {Class.forName("com.mysql.cj.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}}public static Connection getConnection() throws SQLException {return DriverManager.getConnection(URL, USER, PASSWORD);}
}

图例:
在这里插入图片描述

4. UserService 增删改查核心代码

package com.example.model;import com.example.util.JDBCUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;public class UserService {/*** 登录校验:根据用户名和密码查数据库,存在即返回true,否则返回false*/public boolean checkLogin(String username, String password) {String sql = "SELECT * FROM users WHERE username = ? AND password = ?";try (Connection conn = JDBCUtils.getConnection();PreparedStatement pstmt = conn.prepareStatement(sql)) {pstmt.setString(1, username);pstmt.setString(2, password);ResultSet rs = pstmt.executeQuery();return rs.next(); // 查到就返回true} catch (Exception e) {e.printStackTrace();}return false;}/*** 新增用户(注册功能)*/public boolean addUser(String username, String password) {String sql = "INSERT INTO users(username, password) VALUES (?, ?)";try (Connection conn = JDBCUtils.getConnection();PreparedStatement pstmt = conn.prepareStatement(sql)) {pstmt.setString(1, username);pstmt.setString(2, password);return pstmt.executeUpdate() > 0;} catch (Exception e) {e.printStackTrace();}return false;}
}

5. 编写对应 Servlet 实现“新增用户”功能

package com.example.controller;import com.example.model.UserService;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/register")
public class RegisterServlet extends HttpServlet {private UserService userService = new UserService();@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获取表单参数String username = req.getParameter("username");String password = req.getParameter("password");// 调用UserService新增用户boolean success = userService.addUser(username, password);// 根据结果跳转到不同页面if (success) {resp.sendRedirect("success.jsp");} else {resp.sendRedirect("fail.jsp");}}
}
  • 上面用到了前面给你的 UserService 类的 addUser 方法。
  • @WebServlet(“/register”) 表示这个Servlet映射在 /register 路径,等会表单的 action 就写 register。

6. JSP表单举例

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head><title>用户注册</title>
</head>
<body><h2>注册新用户</h2><form action="register" method="post">用户名:<input type="text" name="username" required><br>密码:<input type="password" name="password" required><br><input type="submit" value="注册"></form>
</body>
</html>

7. 新建register_success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>注册成功</title><!-- 3秒后自动跳转到登录页 --><meta http-equiv="refresh" content="3;url=login.jsp">
</head>
<body><h2>注册成功,请返回登录!</h2><a href="login.jsp">点此立即返回登录页</a><p>3秒后会自动跳转...</p>
</body>
</html>

8. 运行图例:

使用数据库中未存在用户登陆:
在这里插入图片描述
显示登陆失败:
在这里插入图片描述
我们先对用户进行注册:

在这里插入图片描述
注册成功返回登录页:
在这里插入图片描述
此时再登陆显示登陆成功:
在这里插入图片描述
此时再查看数据库已添加进了相应用户信息:
在这里插入图片描述

http://www.dtcms.com/a/442113.html

相关文章:

  • 前端实战开发(二):React + Canvas 网络拓扑图开发:6 大核心问题与完整解决方案
  • 【C语言数据结构】第2章:线性表(2)--线性表的顺序存储结构
  • 计算机操作系统--进程:共享内存和管道的差异
  • 深圳移动网站建设公司上海建筑工程有限公司
  • 【Linux】入门指南:基础指令详解Part One
  • 使用 Docker 部署 Nginx 教程
  • 重庆做网站微信的公司上海平面网站
  • 整站优化seo公司哪家好千峰网课
  • C语言指针应用的经典案例
  • C++篇(11)继承
  • 小迪web自用笔记54
  • 网站logo如何做清晰佛山seo优化电话
  • 词袋模型BoW
  • 数据驱动AI实战:从统计学习方法到业务落地的核心方法论
  • 网站开发需求大吗第一次做怎么放进去视频网站
  • display vlan verbose 概念及题目
  • 深度学习写作:model与module; 试验与实验
  • 企业 网站 程序微信小程序开发平台
  • ViT实战二:Cls token
  • AI + 制造:从技术试点到产业刚需的 2025 实践图鉴
  • JVM内存模型剖析
  • 山东网站制作哪家好网站优化方案和实施
  • 工作中使用到的单词(软件开发)_第五版
  • Vue3 Router高级用法—菜单动态渲染
  • 西安seo网站排名优化公司网站快速推广排名技巧
  • LeetCode算法日记 - Day 62: 黄金矿工、不同路径III
  • 济南建设工程信息网站asp.net实用网站开发
  • deepseek 的对话json导出成word和pdf
  • php 网站 项目如何用wordpress搭建个人博客
  • Prometheus监控K8S集群-ExternalName-endpoints-ElasticStack采集K8S集群日志实战