首先我们来讲解一下Spring Boot整合Mybatis的基本过程和步骤:
1. 引入相关依赖
首先我们需要在我们的pom.xml
文件中引入以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <!-- web组件 -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId> <!-- jdbc组件 -->
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId> <!-- mybatis组件 -->
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <!-- 数据库驱动 -->
<version>8.0.22</version>
</dependency>
2. 配置数据源
我们需要在application.properties
或application.yml
文件中配置我们的数据源信息,比如:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
3. 配置Mybatis
我们需要在application.properties
或application.yml
文件中添加以下配置:
mybatis.mapper-locations=classpath*:mapper/*.xml
其中,classpath*:mapper/*.xml
表示我们的Mapper映射文件存放的位置。
4. 编写Mapper接口
我们需要在我们的项目中编写对应的Mapper接口,比如:
@Mapper
public interface UserMapper {
List<User> findAll();
User findById(Long id);
void save(User user);
void update(User user);
void deleteById(Long id);
}
5. 编写Mapper映射文件
我们需要在classpath*:mapper/*.xml
指定的文件位置下编写对应的Mapper映射文件,比如:
<mapper namespace="com.example.mapper.UserMapper">
<select id="findAll" resultType="com.example.pojo.User">
select * from user
</select>
<select id="findById" parameterType="java.lang.Long" resultType="com.example.pojo.User">
select * from user where id = #{id}
</select>
<insert id="save" parameterType="com.example.pojo.User">
insert into user(name, age, sex) values(#{name}, #{age}, #{sex})
</insert>
<update id="update" parameterType="com.example.pojo.User">
update user set name = #{name}, age = #{age}, sex = #{sex} where id = #{id}
</update>
<delete id="deleteById" parameterType="java.lang.Long">
delete from user where id = #{id}
</delete>
</mapper>
6. 调用Mapper接口
我们可以在我们的Controller中调用Mapper接口,比如:
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/users")
public List<User> findAll() {
return userMapper.findAll();
}
@GetMapping("/user/{id}")
public User findById(@PathVariable("id") Long id) {
return userMapper.findById(id);
}
@PostMapping("/user")
public void save(@RequestBody User user) {
userMapper.save(user);
}
@PutMapping("/user")
public void update(@RequestBody User user) {
userMapper.update(user);
}
@DeleteMapping("/user/{id}")
public void deleteById(@PathVariable("id") Long id) {
userMapper.deleteById(id);
}
}
以上就是整合Spring Boot和Mybatis的基本过程和步骤。
下面我们再来看两个示例:
示例一:整合Spring Boot和Mybatis查询数据库
假设我们有一个user
表,其中包含三个字段:id
、name
、age
和sex
,现在我们要查询所有的用户并返回JSON格式。
首先,我们需要在application.properties
或application.yml
文件中添加以下配置:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
mybatis.mapper-locations=classpath*:mapper/*.xml
接着,我们需要在我们的项目中编写对应的Mapper接口和Mapper映射文件,具体信息请看前面。
最后,我们需要编写对应的Controller,比如:
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/users")
public List<User> findAll() {
return userMapper.findAll();
}
}
当我们访问http://localhost:8080/users
时,就可以查询到所有的用户并以JSON格式返回。
示例二:整合Spring Boot和Mybatis保存数据到数据库
假设我们要保存一个用户到我们的user
表中,其中包含三个字段:name
、age
和sex
。
首先,我们需要在application.properties
或application.yml
文件中添加以下配置:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123456
mybatis.mapper-locations=classpath*:mapper/*.xml
接着,我们需要在我们的项目中编写对应的Mapper接口和Mapper映射文件,具体信息请看前面。
最后,我们需要编写对应的Controller,比如:
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@PostMapping("/user")
public void save(@RequestBody User user) {
userMapper.save(user);
}
}
当我们向http://localhost:8080/user
POST 一个包含name
、age
和sex
字段的JSON数据时,就可以将数据保存到我们的数据库中。
以上就是示例一和示例二的完整代码和演示过程。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring boot整合mybatis实现过程图解 - Python技术站