SpringBoot与MyBatis集成教程:注解与XML配置

需积分: 0 0 下载量 16 浏览量 更新于2024-08-03 收藏 8KB MD 举报
"这篇文档是关于如何在SpringBoot项目中集成MyBatis的教程,涵盖了注解和XML配置的方式。" 在SpringBoot框架中整合MyBatis,首先我们需要添加必要的依赖到项目的`pom.xml`文件。以下是核心的依赖项: 1. `spring-boot-starter-jdbc`:提供Spring对JDBC的支持。 2. `spring-boot-starter-web`:包含Spring MVC和Tomcat,用于构建Web应用。 3. `mybatis-spring-boot-starter`:MyBatis的Spring Boot启动器,简化了MyBatis与Spring的集成。 4. `druid-spring-boot-starter`:Druid数据源,一个高性能的数据库连接池。 5. `mysql-connector-java`:MySQL的JDBC驱动,用于连接MySQL数据库。 6. `spring-boot-starter-test`:用于测试,通常在开发阶段使用,但在这里排除了`junit.vintage`,可能是因为文档作者更倾向于使用其他的测试框架。 接下来,我们需要配置数据库连接。在`application.properties`或`application.yml`文件中,设置MySQL数据库的相关属性,如数据库URL、用户名、密码等: ```properties spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=root ``` 然后,配置MyBatis。创建`mybatis-config.xml`文件,并设置MyBatis的基本属性,例如扫描Mapper接口的包路径: ```xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <mappers> <package name="com.example.demo.mapper"/> </mappers> </configuration> ``` 在`@SpringBootApplication`类所在的包或者其子包下创建一个配置类,用于配置MyBatis和SqlSessionFactory: ```java @Configuration @MapperScan("com.example.demo.mapper") public class MyBatisConfig { @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setDataSource(dataSource); factoryBean.setTypeAliasesPackage("com.example.demo.model"); // 设置实体类包名,用于类型别名 Resource configLocation = new ClassPathResource("mybatis-config.xml"); factoryBean.setConfigLocation(configLocation); return factoryBean.getObject(); } } ``` 现在我们可以开始编写Mapper接口和对应的XML映射文件。例如,创建一个`UserMapper.java`接口: ```java public interface UserMapper { User selectUserById(Long id); } ``` 并创建对应的`UserMapper.xml`文件,定义SQL语句: ```xml <mapper namespace="com.example.demo.mapper.UserMapper"> <select id="selectUserById" resultType="com.example.demo.model.User"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 最后,我们可以在服务类中注入Mapper接口,直接调用方法来执行SQL: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public User getUserById(Long id) { return userMapper.selectUserById(id); } } ``` 这就是SpringBoot整合MyBatis的基本步骤,通过注解和XML配置实现数据访问。在实际项目中,还可以使用注解方式来替代XML配置,例如在接口方法上使用`@Select`、`@Insert`、`@Update`和`@Delete`注解,让代码更加简洁。同时,MyBatis的动态SQL功能可以让查询变得更加灵活,大大提高了开发效率。