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

JavaWeb 开发进阶 - 数据库交互与框架应用

在掌握了 JavaWeb 开发的基础知识后,我们将进一步探索如何与数据库进行交互,以及如何运用框架来提升开发效率。这不仅能让我们的 Web 应用更加实用,还能使开发过程更加规范化和便捷。

一、JavaWeb 与数据库交互

  1. JDBC 基础:Java Database Connectivity(JDBC)是 Java 提供的用于执行 SQL 语句的 API。它允许 Java 程序连接到各种数据库,如 MySQL、Oracle 等,并进行数据的增删改查操作。首先,需要下载对应数据库的 JDBC 驱动,例如 MySQL 的 JDBC 驱动mysql - connector - java。将驱动添加到项目的lib目录中,并在项目设置中添加为依赖。
  2. 数据库连接示例:以下是一个简单的 Java 代码示例,用于连接 MySQL 数据库并执行查询操作:

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class DatabaseExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/yourdatabase";
        String username = "root";
        String password = "password";

        try (Connection conn = DriverManager.getConnection(url, username, password);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT * FROM users")) {

            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                System.out.println("ID: " + id + ", Name: " + name);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. 在 Servlet 中使用 JDBC:在实际的 JavaWeb 开发中,通常会在 Servlet 中与数据库交互。例如,在处理用户登录请求时,从数据库中查询用户信息进行验证。

 

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 java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        String url = "jdbc:mysql://localhost:3306/yourdatabase";
        String dbUsername = "root";
        String dbPassword = "password";

        try (Connection conn = DriverManager.getConnection(url, dbUsername, dbPassword);
             PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE username =? AND password =?")) {

            pstmt.setString(1, username);
            pstmt.setString(2, password);
            ResultSet rs = pstmt.executeQuery();

            if (rs.next()) {
                response.setContentType("text/html");
                PrintWriter out = response.getWriter();
                out.println("<html><body>");
                out.println("<h1>登录成功</h1>");
                out.println("</body></html>");
            } else {
                response.setContentType("text/html");
                PrintWriter out = response.getWriter();
                out.println("<html><body>");
                out.println("<h1>登录失败</h1>");
                out.println("</body></html>");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

二、JavaWeb 框架应用 - SpringMVC

  1. SpringMVC 简介:SpringMVC 是 Spring 框架的一个模块,用于构建 Web 应用程序。它基于 MVC(Model - View - Controller)设计模式,将业务逻辑、数据展示和用户交互分离,使代码结构更加清晰,易于维护和扩展。
  2. SpringMVC 项目搭建:使用 Maven 来管理项目依赖。在pom.xml文件中添加 SpringMVC 相关的依赖:
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring - webmvc</artifactId>
        <version>5.3.10</version>
    </dependency>
</dependencies>

然后配置 SpringMVC 的核心控制器DispatcherServlet,在web.xml文件中添加如下配置:

<servlet>
    <servlet - name>dispatcher</servlet - name>
    <servlet - class>org.springframework.web.servlet.DispatcherServlet</servlet - class>
    <init - param>
        <param - name>contextConfigLocation</param - name>
        <param - value>/WEB - INF/spring - mvc - servlet.xml</param - value>
    </init - param>
    <load - on - startup>1</load - on - startup>
</servlet>
<servlet - mapping>
    <servlet - name>dispatcher</servlet - name>
    <url - pattern>/</url - pattern>
</servlet - mapping>

 

  1. 创建控制器与视图:在 SpringMVC 中,创建控制器类来处理请求。例如:
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {
    @GetMapping("/")
    public String home(Model model) {
        model.addAttribute("message", "欢迎来到SpringMVC应用");
        return "home";
    }
}

 

这里使用@Controller注解标识该类为控制器,@GetMapping注解映射请求路径。视图文件(如home.jsp)可以放在WEB - INF/views目录下,通过Model传递数据到视图中进行展示。

通过以上对数据库交互和 SpringMVC 框架的学习,我们在 JavaWeb 开发的道路上又迈进了一大步。数据库交互使我们的应用能够持久化存储和管理数据,而框架的应用则大大提高了开发效率和代码的可维护性。在今后的学习和实践中,还可以进一步探索其他框架,如 Spring Boot、MyBatis 等,不断丰富自己的 JavaWeb 开发技能栈。希望大家在 JavaWeb 开发的进阶之路上不断取得新的突破。


http://www.kler.cn/a/461130.html

相关文章:

  • C#中自定义集合的序列化与反序列化实现
  • 使用CSS 和 JavaScript 实现鼠标悬停时图片放大、缩小和抖动
  • AWS K8s 部署架构
  • springboot 跨域配置
  • java中的基本数据类型有哪些?
  • 攻防靶场(29):目录权限和文件权限 ICMP
  • 五、Hadoop环境搭建之模板虚拟机准备
  • tomcat窗口闪退,以及在eclipse上面运行不出来
  • HTML5滑块(Slider)
  • 从家谱的层级结构 - 组合模式(Composite Pattern)
  • es单机安装脚本自动化
  • hive-sql 计算每年在校生人数
  • 写在2024的最后一天
  • 【浏览器】缓存
  • Android 检测设备是否 Root
  • 【数据结构】线性数据结构——栈
  • 本地部署Hello-Algo打造私人算法教练让算法学习告别网络限制
  • 解构大语言模型(LLM)
  • 如何免费解锁 IPhone 网络
  • 如何使用 ChatGPT Prompts 写学术论文?
  • 嵌入式单片机中SPI外设控制与实现
  • 网神SecFox运维安全管理与审计系统 /authService/login接口反序列化漏洞复现 [附POC]
  • Vue.js组件开发-实现多级菜单
  • want php学习笔记
  • 【mysql】linux安装mysql客户端
  • 计算机体系结构期末考试