在 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>
在 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>
在 Spring 配置文件中配置 MapperScannerConfigurer,用于扫描Mapper接口并自动创建映射文件:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
在指定的包下创建 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>
在 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 中。