1. 添加依赖
在pom.xml
文件中添加MyBatis和数据库驱动的依赖。以MySQL为例:
<dependencies><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Boot Starter MyBatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version> <!-- 请根据需要选择合适的版本 --></dependency><!-- MySQL Connector --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- Spring Boot Starter Test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>
2. 配置数据源
在application.yml
或application.properties
文件中配置数据源和MyBatis的相关信息。
application.yml
spring:datasource:url: jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8username: your_usernamepassword: your_passworddriver-class-name: com.mysql.cj.jdbc.Drivermybatis:mapper-locations: classpath:mappers/*.xmltype-aliases-package: com.yourpackage.modelconfiguration:map-underscore-to-camel-case: true
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Drivermybatis.mapper-locations=classpath:mappers/*.xml
mybatis.type-aliases-package=com.yourpackage.model
mybatis.configuration.map-underscore-to-camel-case=true
3. 创建实体类(Entity)
根据数据库表结构创建对应的实体类。例如,有一个User
表:
package com.yourpackage.model;public class User {private Integer id;private String name;private Integer age;// Getters and Setterspublic Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
}
4. 创建Mapper接口
创建一个Mapper接口,定义数据库操作方法。例如:
package com.yourpackage.mapper;import com.yourpackage.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
public interface UserMapper {@Select("SELECT * FROM user")List<User> getAllUsers();
}
你也可以使用XML文件来定义SQL语句,而不是注解。
5. 创建Mapper XML文件(可选)
如果使用XML文件定义SQL语句,创建mappers/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.yourpackage.mapper.UserMapper"><select id="getAllUsers" resultType="com.yourpackage.model.User">SELECT * FROM user</select>
</mapper>
6. 创建Service层(可选)
创建Service层来处理业务逻辑。例如:
package com.yourpackage.service;import com.yourpackage.model.User;
import com.yourpackage.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public List<User> getAllUsers() {return userMapper.getAllUsers();}
}
7. 创建Controller层
创建Controller层来处理HTTP请求。例如:
package com.yourpackage.controller;import com.yourpackage.model.User;
import com.yourpackage.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
@RequestMapping("/users")
public class UserController {@Autowiredprivate UserService userService;@GetMappingpublic List<User> getAllUsers() {return userService.getAllUsers();}
}
8. 启动项目
运行Spring Boot应用程序,访问http://localhost:8080/users
,即可看到从数据库中查询到的用户数据。
9. 注意事项
-
版本兼容性:确保MyBatis和Spring Boot的版本兼容。
-
事务管理:如果需要事务管理,可以在Service层方法上添加
@Transactional
注解。 -
日志配置:可以通过配置日志级别来查看MyBatis的SQL执行情况。例如,在
application.properties
中添加以下配置:
logging.level.org.apache.ibatis=DEBUG