引言
Java MVC框架是Java Web开发中常用的一种架构模式,它将Web应用分为模型(Model)、视图(View)和控制器(Controller)三个部分,使得代码结构清晰,易于维护。对于新手来说,掌握Java MVC框架是进入Java Web开发世界的重要一步。本文将手把手教你搭建一个简单的Java MVC项目,让你从零开始,逐步深入理解MVC框架。
一、环境准备
在开始之前,我们需要准备以下环境:
- Java开发环境:安装JDK,配置环境变量。
- IDE:推荐使用IntelliJ IDEA或Eclipse。
- Maven:用于项目依赖管理。
- 数据库:如MySQL、Oracle等。
二、创建项目
- 新建Maven项目:在IDE中创建一个新的Maven项目,并添加以下依赖:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
- 配置数据库连接:在
src/main/resources目录下创建一个名为application.properties的文件,并添加以下内容:
# 数据库配置
db.url=jdbc:mysql://localhost:3306/test
db.username=root
db.password=root
db.driver=com.mysql.cj.jdbc.Driver
三、搭建Model
- 创建实体类:在
src/main/java/com/example/model目录下创建一个名为User的实体类,用于表示用户信息。
package com.example.model;
public class User {
private Integer id;
private String name;
private String email;
// 省略getter和setter方法
}
- 创建数据访问接口:在
src/main/java/com/example/repository目录下创建一个名为UserRepository的接口,用于操作数据库。
package com.example.repository;
import com.example.model.User;
import java.util.List;
public interface UserRepository {
List<User> findAll();
User findById(Integer id);
void save(User user);
void delete(Integer id);
}
- 实现数据访问接口:在
src/main/java/com/example/repository/impl目录下创建一个名为UserRepositoryImpl的类,实现UserRepository接口。
package com.example.repository.impl;
import com.example.model.User;
import com.example.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class UserRepositoryImpl implements UserRepository {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<User> findAll() {
String sql = "SELECT * FROM user";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
}
@Override
public User findById(Integer id) {
String sql = "SELECT * FROM user WHERE id = ?";
return jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(User.class));
}
@Override
public void save(User user) {
String sql = "INSERT INTO user (name, email) VALUES (?, ?)";
jdbcTemplate.update(sql, user.getName(), user.getEmail());
}
@Override
public void delete(Integer id) {
String sql = "DELETE FROM user WHERE id = ?";
jdbcTemplate.update(sql, id);
}
}
四、搭建Controller
- 创建控制器类:在
src/main/java/com/example/controller目录下创建一个名为UserController的类,用于处理用户相关的请求。
package com.example.controller;
import com.example.model.User;
import com.example.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping("/users")
public String listUsers(Model model) {
List<User> users = userRepository.findAll();
model.addAttribute("users", users);
return "users";
}
@PostMapping("/addUser")
public String addUser(@RequestParam("name") String name, @RequestParam("email") String email) {
User user = new User();
user.setName(name);
user.setEmail(email);
userRepository.save(user);
return "redirect:/users";
}
}
- 配置视图解析器:在
src/main/resources目录下创建一个名为springmvc.xml的文件,并添加以下内容:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.example"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
- 创建视图:在
src/main/webapp/WEB-INF/views目录下创建一个名为users.jsp的文件,用于展示用户列表。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户列表</title>
</head>
<body>
<h1>用户列表</h1>
<table>
<tr>
<th>姓名</th>
<th>邮箱</th>
</tr>
<c:forEach var="user" items="${users}">
<tr>
<td>${user.name}</td>
<td>${user.email}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
五、运行项目
启动项目:在IDE中运行项目,访问
http://localhost:8080/users,即可看到用户列表页面。添加用户:在用户列表页面下方,输入姓名和邮箱,点击“添加”按钮,即可添加新用户。
结语
通过本文的学习,你已成功搭建了一个简单的Java MVC项目。在实际开发中,你可以根据需求进一步完善项目功能,如添加用户登录、权限控制等。希望本文能帮助你快速入门Java MVC框架,为你的Java Web开发之路奠定基础。
