mybatis

如何在SpringMvc中配置Mybatis

小樊
81
2024-10-13 17:48:42
栏目: 编程语言

在 Spring MVC 中配置 MyBatis,需要遵循以下步骤:

  1. 添加依赖

在项目的 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>
  1. 配置数据源

在 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>
  1. 配置 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>
  1. 配置 MapperScannerConfigurer

在 Spring 配置文件中配置 MapperScannerConfigurer,用于扫描Mapper接口并自动创建映射文件:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.example.dao" />
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
  1. 编写 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>
  1. 在 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 中。

0
看了该问题的人还看了