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();
         }
     }
    

    }

  3. 在 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 开发的进阶之路上不断取得新的突破。

相关推荐
Ethel L39 分钟前
Postman[8] 断言
java·测试工具·postman
鲤籽鲲2 小时前
C# _ 数字分隔符的使用
开发语言·c#
啊烨疯狂学java3 小时前
EasyExcel监听器详解
java·easyexcel
fillwang3 小时前
Python实现Excel行列转换
开发语言·python·excel
北极糊的狐4 小时前
SQL中,# 和 $ 用于不同的占位符语法
java·开发语言
漫漫不慢.5 小时前
九进制转10进制
java·开发语言
西猫雷婶5 小时前
python学opencv|读取图像(二十五)使用cv2.putText()绘制文字进阶-垂直镜像文字
开发语言·python·opencv
大小科圣5 小时前
windows配置jdk
java·开发语言
鲤籽鲲5 小时前
C# 内置值类型
android·java·c#
西猫雷婶5 小时前
python学opencv|读取图像(二十四)使用cv2.putText()绘制文字进阶-倾斜文字
开发语言·python·opencv