Spring Boot MyBatis 连接数据库配置示例
在Spring Boot应用中整合MyBatis来连接数据库是一项常见的任务,这使得我们能够利用MyBatis的灵活性和Spring Boot的自动化配置。以下是如何在Spring Boot中配置MyBatis与数据库连接的详细步骤。 我们需要在`pom.xml`文件中添加MyBatis的Spring Boot启动器依赖。这个依赖包含了MyBatis的核心库以及与Spring Boot的适配器: ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <!-- 使用最新稳定版本 --> <version>2.2.0</version> </dependency> ``` Spring Boot默认使用`org.apache.tomcat.jdbc.pool.DataSource`作为数据源,但为了提高性能,我们可以切换到HikariCP。在`application.properties`中设置数据源类型为HikariDataSource: ```properties spring.datasource.type=com.zaxxer.hikari.HikariDataSource ``` 并添加HikariCP的依赖: ```xml <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </dependency> ``` 接下来是MyBatis的配置。有两种主要方式:基于注解和基于XML文件。虽然注解方式简化了配置,但在复杂场景下,XML配置可能更灵活,因此这里以XML方式为例。 1. 创建一个接口`StudentMapper`,它继承自`MyMapper<Student>`,其中`MyMapper`是自定义的基接口,继承了`tk.mybatis.mapper.common.Mapper`和`tk.mybatis.mapper.common.MySqlMapper`。`StudentMapper`接口定义了需要的方法,如`likeName`和`getById`: ```java public interface StudentMapper extends MyMapper<Student> { List<Student> likeName(String name); Student getById(int id); } ``` 2. 创建对应的`StudentMapper.xml`文件,定义映射SQL语句。确保`id`与接口方法名一致: ```xml <mapper namespace="org.springboot.sample.mapper.StudentMapper"> <select id="likeName" resultType="org.springboot.sample.entity.Student"> SELECT * FROM student WHERE name LIKE #{name} </select> <select id="getById" resultType="org.springboot.sample.entity.Student"> SELECT * FROM student WHERE id = #{id} </select> </mapper> ``` 3. 在Spring Boot的配置文件中,指定MyBatis的配置文件路径(通常是`mybatis-config.xml`),以及Mapper文件的扫描路径。例如: ```properties mybatis.config-location=classpath:mybatis-config.xml mybatis.mapper-locations=classpath:mapper/*.xml ``` 4. 创建`mybatis-config.xml`,配置MyBatis的基本属性,例如日志、事务管理等: ```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> <settings> <!-- 开启驼峰命名转换 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration> ``` 5. 为了使用`StudentMapper`,需要将其作为一个bean注入到服务层或者控制器中。Spring Boot会自动扫描`@Mapper`接口,并使用MyBatis的SqlSessionTemplate处理SQL执行。 ```java @Service public class StudentService { @Autowired private StudentMapper studentMapper; public List<Student> findStudentsByName(String name) { return studentMapper.likeName(name); } } ``` 除了基本的查询操作,我们还可以集成分页插件PageHelper,以实现更方便的分页功能。在`pom.xml`中添加PageHelper依赖,并在`mybatis-config.xml`中配置PageHelper: ```xml <!-- 添加PageHelper配置 --> <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <property name="helperDialect" value="mysql"/> <property name="reasonable" value="true"/> <property name="supportMethodsArguments" value="true"/> <property name="params" value="count=countSql"/> </plugin> </plugins> ``` 现在,你已经成功地在Spring Boot中配置了MyBatis,连接到了数据库,并通过XML文件执行了SQL查询。记得根据实际情况调整配置,以适应你的项目需求。
- 粉丝: 6
- 资源: 938
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助