【第13章】MyBatis-Spring入门


前言

MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。 最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring。


一、简介

我们在前面的SpringMvc框架下引入Mybatis,所以这里我们需要使用MyBatis-Spring 3.0的版本。

MyBatis-SpringMyBatisSpring FrameworkJava
3.03.5+6.0Java 17+
2.13.5+5.xJava 8+

二、安装

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>3.0.3</version>
</dependency>

三、快速上手

1.spring-mvc.xml

 <!-- sqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
</bean>

2.新建表

CREATE TABLE users  (
  `id` int NOT NULL,
  `name` varchar(255) NULL,
  `funkyNumber` int NULL,
  `roundingMode` int NULL,
  PRIMARY KEY (`id`)
);

3. 新建实体

package org.example.mybatis.domain;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.RoundingMode;

/**
 * Create by zjg on 2024/5/8
 */
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int id;
    private String name;
    private int funkyNumber;
    private RoundingMode roundingMode;
}


4. 新建接口

package org.example.mybatis.mapper;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.example.mybatis.model.User;

/**
 * Create by zjg on 2024/5/6
 */
 @Mapper
public interface UserMapper {
    @Select("select id from users where ${column} = #{value}")
    User findByColumn(@Param("column") String column, @Param("value") String value);
}

5. 实例化

<!--实例化-->
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
    <property name="mapperInterface" value="org.example.mybatis.mapper.UserMapper" />
    <property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>

6. 控制器

package org.example.mybatis.controller;

import org.example.mybatis.domain.User;
import org.example.mybatis.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Create by zjg on 2024/5/12
 */
@RestController
@RequestMapping("/mybatis/spring/")
public class MybatisSpringController {
    @Autowired
    UserMapper userMapper;
    @RequestMapping("001")
    public void mybatis001() {
        User user = userMapper.findByColumn("id", "1");
        System.out.println(user);
    }
}

7. 结果

User(id=1, name=null, funkyNumber=0, roundingMode=null)


总结

回到顶部

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值