Spring Boot Mybatis入门:搭建环境及示例代码
2023-11-30 09:48:27
前言
Spring Boot和MyBatis都是备受欢迎的Java框架,它们可以简化Java应用的开发。Spring Boot提供了开箱即用的配置,而MyBatis是一个强大的对象关系映射框架(ORM),可以简化与数据库的交互。本文将详细介绍如何将Spring Boot和MyBatis整合在一起,并提供一个入门示例。
环境搭建
1. 创建Spring Boot项目
首先,我们需要创建一个新的Spring Boot项目。我们可以使用Spring Initializr生成一个Spring Boot项目。在Spring Initializr网站上,选择Spring Boot版本、Java版本以及依赖项。这里我们选择以下依赖项:
- Spring Boot
- MyBatis
- MySQL Connector
2. 配置数据库
接下来,我们需要配置数据库。在本例中,我们将使用MySQL数据库。首先,我们需要在MySQL中创建一个新的数据库。然后,我们需要修改application.properties
文件,添加以下配置:
spring.datasource.url=jdbc:mysql://localhost:3306/spring_boot_mybatis
spring.datasource.username=root
spring.datasource.password=password
其中,spring.datasource.url
是数据库的URL,spring.datasource.username
是数据库的用户名,spring.datasource.password
是数据库的密码。
3. 配置MyBatis
接下来,我们需要配置MyBatis。首先,我们需要在pom.xml
文件中添加MyBatis的依赖项:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.6.0</version>
</dependency>
然后,我们需要在application.properties
文件中添加MyBatis的配置:
mybatis.configuration.map-underscore-to-camel-case=true
其中,mybatis.configuration.map-underscore-to-camel-case
属性指定是否将数据库中的下划线转换为Java中的驼峰命名法。
示例代码
1. 创建实体类
首先,我们需要创建一个实体类,它将映射到数据库中的表。在本例中,我们将创建一个User
实体类:
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String password;
// 省略getter和setter方法
}
2. 创建MyBatis映射文件
接下来,我们需要创建一个MyBatis映射文件,它将指定实体类和数据库表之间的映射关系。在本例中,我们将创建一个UserMapper.xml
映射文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
INSERT INTO users (username, password) VALUES (#{username}, #{password})
</insert>
<select id="select" resultType="com.example.demo.entity.User">
SELECT * FROM users WHERE id = #{id}
</select>
<update id="update">
UPDATE users SET username = #{username}, password = #{password} WHERE id = #{id}
</update>
<delete id="delete">
DELETE FROM users WHERE id = #{id}
</delete>
</mapper>
3. 创建Service层
接下来,我们需要创建一个Service层,它将提供业务逻辑。在本例中,我们将创建一个UserService
类:
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public void insert(User user) {
userMapper.insert(user);
}
public User select(Long id) {
return userMapper.select(id);
}
public void update(User user) {
userMapper.update(user);
}
public void delete(Long id) {
userMapper.delete(id);
}
}
4. 创建Controller层
最后,我们需要创建一个Controller层,它将处理HTTP请求。在本例中,我们将创建一个UserController
类:
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@PostMapping
public void insert(@RequestBody User user) {
userService.insert(user);
}
@GetMapping("/{id}")
public User select(@PathVariable Long id) {
return userService.select(id);
}
@PutMapping
public void update(@RequestBody User user) {
userService.update(user);
}
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
userService.delete(id);
}
}
测试
我们可以使用以下命令运行Spring Boot项目:
mvn spring-boot:run
然后,我们可以使用以下命令测试API:
curl -X POST -H "Content-Type: application/json" -d '{"username": "john", "password": "password"}' http://localhost:8080/users
curl -X GET http://localhost:8080/users/1
curl -X PUT -H "Content-Type: application/json" -d '{"id": 1, "username": "john", "password": "new_password"}' http://localhost:8080/users
curl -X DELETE http://localhost:8080/users/1
总结
本文详细介绍了如何在Spring Boot中使用MyBatis。我们从环境搭建开始,然后介绍了示例代码和测试方法。希望本文能够帮助您快速入门Spring Boot Mybatis开发。