在掌握了 JavaWeb 开发的基础知识后,我们将进一步探索如何与数据库进行交互,以及如何运用框架来提升开发效率。这不仅能让我们的 Web 应用更加实用,还能使开发过程更加规范化和便捷。
一、JavaWeb 与数据库交互
-
JDBC 基础 :Java Database Connectivity(JDBC)是 Java 提供的用于执行 SQL 语句的 API。它允许 Java 程序连接到各种数据库,如 MySQL、Oracle 等,并进行数据的增删改查操作。首先,需要下载对应数据库的 JDBC 驱动,例如 MySQL 的 JDBC 驱动
mysql - connector - java
。将驱动添加到项目的lib
目录中,并在项目设置中添加为依赖。 -
数据库连接示例:以下是一个简单的 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(); } }
}
-
在 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
-
SpringMVC 简介:SpringMVC 是 Spring 框架的一个模块,用于构建 Web 应用程序。它基于 MVC(Model - View - Controller)设计模式,将业务逻辑、数据展示和用户交互分离,使代码结构更加清晰,易于维护和扩展。
-
SpringMVC 项目搭建 :使用 Maven 来管理项目依赖。在
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring - webmvc</artifactId> <version>5.3.10</version> </dependency> </dependencies>pom.xml
文件中添加 SpringMVC 相关的依赖:
然后配置 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>
-
创建控制器与视图:在 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 开发的进阶之路上不断取得新的突破。