下面我将详细讲解“Spring Boot整合Mybatis并完成CRUD操作的实现示例”的完整攻略。
一、环境准备
开发这个项目需要准备如下环境:
- JDK8
- Maven
- IDEA或Eclipse
- MySQL数据库
二、创建Spring Boot项目
-
打开IDEA,点击 File -> New -> Project 来创建一个Spring Boot项目,选择 Spring Initializr 选项;
-
在弹出的页面上,选择如下选项:
-
Project SDK
: 选择你的JDK8
版本 Project Language
: 选择Java
Spring Boot
: 选择2.5.5(或更高)
版本-
Project Metadata
: 根据需求填写metadata信息 -
点击 Next 按钮,在下一个页面中添加如下依赖:
-
Spring Web
MyBatis Framework
MySQL Driver
-
Lombok
-
点击 Next 按钮来确认配置,之后点击 Finish 并等待项目创建完成。
三、配置数据库
- 在项目的resource目录下,创建一个
application.yml
的文件,用于配置项目的相关信息,如下所示:
yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
要根据自己的实际数据库配置信息来填写上述配置。
-
接下来,在resource目录下 创建
mybatis
文件夹,并在该文件夹下创建mapper
文件夹和config
文件夹。 -
在
config
文件夹下新建一个MybatisConfig.java
文件,配置Mybatis相关信息,如下所示:
```java
@Configuration
@MapperScan("com.example.mapper")
public class MybatisConfig {
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
// 为实体类的别名指定的包路径(不指定在XML文件中的参数需要写全路径)
sessionFactoryBean.setTypeAliasesPackage("com.example.entity");
// 添加XML资源路径
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:mybatis/mapper/*.xml"));
return sessionFactoryBean.getObject();
}
}
```
-
接着,在
mapper
文件夹下新建UserMapper.java
和UserMapper.xml
两个文件,分别用于定义Mapper接口和SQL语句。 -
UserMapper.java
java
public interface UserMapper {
List<User> findAllUsers();
void insertUser(User user);
User findUserById(Integer id);
void updateUser(User user);
void deleteUserById(Integer id);
} -
UserMapper.xml
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.mapper.UserMapper">
<select id="findAllUsers" resultType="com.example.entity.User">
SELECT * FROM user;
</select>
<insert id="insertUser">
INSERT INTO `user` ( `username`, `password`) VALUES (#{username}, #{password});
</insert>
<select id="findUserById" resultType="com.example.entity.User">
SELECT * FROM user WHERE id=#{id};
</select>
<update id="updateUser">
UPDATE `user` SET `username` = #{username}, `password` = #{password} WHERE id = #{id};
</update>
<delete id="deleteUserById">
DELETE FROM `user` WHERE id=#{id};
</delete>
</mapper> -
最后,在
entity
包下新建一个User.java
文件,该文件对应上述SQL中的user
表,如下所示:
java
@Data // 使用 lombok 自动生成getter、setter、toString 方法
public class User {
private Integer id;
private String username;
private String password;
}
四、定义控制器
在项目中定义一个控制器,用于和前端页面交互,完成 CURD 操作。
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/findAll")
public List<User> findAll() {
return userMapper.findAllUsers();
}
@PostMapping("/addUser")
public String addUser(@RequestBody User user) {
userMapper.insertUser(user);
return "success";
}
@GetMapping("/findById/{id}")
public User findById(@PathVariable Integer id) {
return userMapper.findUserById(id);
}
@PutMapping("/updateUser")
public String updateUser(@RequestBody User user) {
userMapper.updateUser(user);
return "success";
}
@DeleteMapping("/deleteUser/{id}")
public String deleteUser(@PathVariable Integer id) {
userMapper.deleteUserById(id);
return "success";
}
}
其中 /user/findAll 表示查询所有用户, /user/addUser 表示新增用户, /user/findById/{id} 表示根据id
查询用户, /user/updateUser 表示修改用户信息, /user/deleteUser/{id} 表示删除用户。
五、启动项目并测试
- 启动项目
在IDEA中,点击项目中的 Run
按钮,或使用快捷键 Shift+F10
来启动项目。
- 测试项目
通过 Postman 或者浏览器输入以下地址进行测试:
- 查询所有用户:http://localhost:8080/user/findAll/
- 新增用户:http://localhost:8080/user/addUser/
- 查询用户:http://localhost:8080/user/findById/{id}
- 修改用户:http://localhost:8080/user/updateUser/
- 删除用户:http://localhost:8080/user/deleteUser/{id}
至此,Spring Boot整合Mybatis并完成CRUD操作的实现示例
已经完成了。
示例代码1: https://github.com/spring-projects/spring-boot/tree/main/spring-boot-samples/spring-boot-sample-mybatis
示例代码2: https://github.com/zhua2517/springboot-mybatis-plus-demo
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot整合Mybatis并完成CRUD操作的实现示例 - Python技术站