SpringBoot2.7整合MyBatis的教学博客
步骤1:创建一个Spring Boot项目
首先,创建一个新的Spring Boot项目。可以使用Spring Initializr(https://start.spring.io/)进行项目初始化,选择适当的项目元数据(如项目名称、组织、依赖等)。
步骤2:添加依赖
在项目的pom.xml文件中添加以下依赖项,以引入Spring Boot和MyBatis的相关库:
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
步骤3:配置数据库连接
在application.properties(或application.yml)配置文件中,配置数据库连接信息。根据您使用的数据库类型,选择相应的驱动程序和连接URL,并提供用户名和密码。例如:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=yourpassword
#mybatis
mybatis.mapper-locations=classpath*:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.model
步骤4:创建数据库表和实体类
根据需求,在数据库中创建相应的表,并创建与之对应的Java实体类。使用JPA注解或者MyBatis的XML映射文件来定义实体类与数据库表之间的映射关系。
// 实体类
@Data
public class User {
private Long id;
private String username;
private String email;
}
步骤5:创建Mapper接口和SQL语句
创建一个Mapper接口,用于定义与数据库交互的方法。在该接口中,使用MyBatis的注解或者XML映射文件来编写SQL语句。这里是使用注解的(一般建议使用xml,如果要使用xml只需要在Mapper的同一个文件夹里面创建一个名字一模一样的xml文件就行了):
使用注解的:
// Mapper接口
@Mapper
public interface UserMapper {
@Select("SELECT * FROM users")
List<User> getAllUsers();
@Select("SELECT * FROM users WHERE id = #{id}")
User getUserById(Long id);
@Insert("INSERT INTO users(username, email) VALUES (#{username}, #{email})")
@Options(useGeneratedKeys = true, keyProperty = "id")
int insertUser(User user);
@Update("UPDATE users SET username = #{username}, email = #{email} WHERE id = #{id}")
int updateUser(User user);
@Delete("DELETE FROM users WHERE id = #{id}")
int deleteUser(Long id);
}
使用xml的:
public interface UserMapperextends BaseMapper<User> {
User getAllUsers();
}
<?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">
<resultMap id="userResultMap" type="com.example.demo.model.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="email" column="email"/>
</resultMap>
<select id="getAllUsers" resultMap="userResultMap">
SELECT * FROM users
</select>
</mapper>
步骤6:创建Service层
创建一个Service层,在该层中编写业务逻辑代码,并调用Mapper接口中的方法来访问数据库。
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> getAllUsers() {
return userMapper.getAllUsers();
}
public User getUserById(Long id) {
return userMapper.getUserById(id);
}
public int insertUser(User user) {
return userMapper.insertUser(user);
}
public int updateUser(User user) {
return userMapper.updateUser(user);
}
public int deleteUser(Long id) {
return userMapper.deleteUser(id);
}
}
步骤7:创建Controller层
创建一个Controller层,用于处理HTTP请求和响应。在Controller中注入Service,并定义相应的请求处理方法。
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/")
public List<User> getAllUsers() {
return userService.getAllUsers();
}
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getUserById(id);
}
@PostMapping("/")
public int insertUser(@RequestBody User user) {
return userService.insertUser(user);
}
@PutMapping("/")
public int updateUser(@RequestBody User user) {
return userService.updateUser(user);
}
@DeleteMapping("/{id}")
public int deleteUser(@PathVariable Long id) {
return userService.deleteUser(id);
}
}
步骤8 配mybtis
@MapperScan这个注解会扫描mapper文件夹,想要指定该文件夹路径
如果每个mapper类都有使用@Mapper直接那么这累就可以去除,不然有可能会出现错误
@Configuration
@MapperScan
public class MybatisPlusConfig {
/**
* 分页插件
*
* @return 分页
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
步骤9:运行和测试
启动Spring Boot应用程序,并使用任何HTTP客户端(如Postman)测试定义的API端点。确保与数据库的连接正确,并且可以成功执行CRUD操作。
如果遇到一些错误可以查看该博客:https://blog.csdn.net/weixin_51444617/article/details/131005215看看有没有解决方法