一、概述
本文将简要讲解如何使用SpringBoot + SpringMVC + MyBatis这个组合来开发Web应用。这一组合是非常流行的,MyBatis负责ORM,SpringMVC负责MVC框架,SpringBoot则帮助我们快速搭建整个应用。
二、环境搭建
首先,我们需要在本地环境中安装JDK、Maven以及相应的IDE。为了便于快速上手,可以使用Spring官方提供的Spring Initializr来创建一个基础项目。
三、SpringBoot配置
在pom.xml中添加如下依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- SpringBoot web 开发不可少 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
四、MyBatis配置
在SpringBoot中配置MyBatis比较简单,只需要在application.properties中设置数据源以及MyBatis相关的属性。示例代码如下:
# MyBatis 配置(在application.properties中配置)
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.config-location=classpath:mybatis-config.xml
# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test_db?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=your-password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.hikari.connection-timeout=60000
spring.datasource.hikari.maximum-pool-size=10
五、开发示例
以下是本文的开发示例。它包含两个示例:
- 一个使用MyBatis进行数据持久化的示例;
- 一个使用SpringMVC进行HTTP请求处理的示例。
示例1: 使用MyBatis进行数据持久化
我们以一个user表为例,该表包含id、name、age三个列。
首先,定义一个user类,代码如下:
public class User {
private Long id;
private String name;
private int age;
//getter/setter方法省略...
}
然后,我们在mapper目录下定义一个UserMapper.xml文件。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.springboot.mybatis.mapper.UserMapper">
<select id="findAllUsers" resultType="com.example.springboot.mybatis.domain.User">
SELECT * FROM user
</select>
<insert id="save" parameterType="com.example.springboot.mybatis.domain.User">
INSERT INTO user(name, age) VALUES(#{name}, #{age})
</insert>
</mapper>
其中,findAllUsers方法用于查询所有用户;save方法用于新增用户。
定义好了mapper后,接下来就是定义一个对应的mapper接口,代码如下:
public interface UserMapper {
List<User> findAllUsers();
int save(User user);
}
最后,在SpringBoot应用启动类中,增加一个MapperScan标注,声明MyBatis的Mapper扫描位置:
@SpringBootApplication
@MapperScan("com.example.springboot.mybatis.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
至此,我们已经完成了使用MyBatis进行数据持久化的示例。
示例2:使用SpringMVC进行HTTP请求的处理
我们将使用Thymeleaf来实现一个简单的页面,然后使用SpringMVC来处理这个页面的POST请求,将提交的数据写入数据库中。
首先,定义一个UserForm类,表示在页面中提交的数据:
public class UserForm {
private String name;
private int age;
//getter/setter方法省略...
}
然后,定义一个Controller类,处理请求并写入数据库:
@Controller
@RequestMapping("/users")
public class UserController {
private final UserService userService;
@Autowired
public UserController(UserService userService)
{
this.userService = userService;
}
@GetMapping("/")
public String index(Model model)
{
model.addAttribute("userForm", new UserForm());
model.addAttribute("users", userService.findAllUsers());
return "users/index";
}
@PostMapping("/")
public String create(UserForm userForm)
{
User user = new User();
user.setName(userForm.getName());
user.setAge(userForm.getAge());
userService.save(user);
return "redirect:/users/";
}
}
在上述代码中,我们使用@Autowired注解进行依赖注入,将UserService注入到了UserController中。同时,我们使用@GetMapping和@PostMapping来处理GET和POST请求,分别返回视图和重定向到Index视图。
最后,我们来定义这个视图,这里使用了Thymeleaf模板:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8" />
<title>Users</title>
</head>
<body>
<h1>Users</h1>
<ul>
<li th:each="user : ${users}">
<span th:text="${user.name}" />:
<span th:text="${user.age}" />
</li>
</ul>
<hr />
<h2>Add User</h2>
<form th:action="@{/users/}" th:object="${userForm}" method="post">
<p>
<label>Name</label>
<input type="text" th:field="*{name}" />
</p>
<p>
<label>Age</label>
<input type="text" th:field="*{age}" />
</p>
<div>
<button type="submit">Save</button>
</div>
</form>
</body>
</html>
以上就是使用SpringMVC进行HTTP请求处理的示例,我们通过Thymeleaf来生成页面,然后使用UserController来处理POST请求,将数据写入到数据库中。
六、小结
本文简要介绍了使用SpringBoot + SpringMVC + MyBatis这个组合开发Web应用的流程,同时提供了两个示例来帮助读者更好地理解。
建议读者多进行实践,掌握这个组合的使用方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot+springmvc+mybatis项目整合 - Python技术站