阅读量:0
在 Spring MVC 中配置 MyBatis,需要遵循以下步骤:
- 添加依赖
在项目的 pom.xml 文件中添加 MyBatis 和 MyBatis-Spring 相关的依赖。例如:
<dependencies> <!-- Spring MVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- MyBatis-Spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis-spring.version}</version> </dependency> <!-- 数据库驱动、连接池等其他依赖 --> </dependencies>
- 配置数据源
在 Spring 配置文件(如 applicationContext.xml)中配置数据源,例如使用 HikariCP 连接池:
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean>
- 配置 SqlSessionFactory
在 Spring 配置文件中配置 SqlSessionFactory,用于创建 SqlSession 对象:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> <property name="mapperLocations" value="classpath*:mapper/*.xml" /> </bean>
- 配置 MapperScannerConfigurer
在 Spring 配置文件中配置 MapperScannerConfigurer,用于扫描Mapper接口并自动创建映射文件:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean>
- 编写 Mapper 接口和映射文件
在指定的包下创建 Mapper 接口,例如 UserDao.java:
package com.example.dao; import com.example.model.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper public interface UserDao { @Select("SELECT * FROM user") List<User> findAll(); }
创建对应的映射文件,例如 UserDao.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.example.dao.UserDao"> <resultMap id="UserResultMap" type="com.example.model.User"> <id property="id" column="id" /> <result property="username" column="username" /> <result property="password" column="password" /> </resultMap> <select id="findAll" resultMap="UserResultMap"> SELECT * FROM user </select> </mapper>
- 在 Controller 中使用 Mapper
在 Spring MVC 的 Controller 中,通过注入的方式使用 Mapper:
package com.example.controller; import com.example.dao.UserDao; import com.example.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController public class UserController { @Autowired private UserDao userDao; @GetMapping("/users") public List<User> findAll() { return userDao.findAll(); } }
至此,MyBatis 已成功配置在 Spring MVC 中。