SpringBoot与Mybatis集成

本文介绍如何在SpringBoot项目中集成Mybatis框架,包括添加依赖、配置数据源、定义Mapper文件及接口、实现Service层及Controller层等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot与Mybatis集成

在pom文件中引入相应的依赖

    <!--引入mybatis依赖-->
    <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.45</version>
    </dependency>

在application.yml中加入相应的配置

spring:
  thymeleaf:
    cache: false
  datasource:
    name: test
    url: jdbc:mysql://localhost:3306/mybatis
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
mybatis:
  mapper-locations: classpath:mapper/*.xml      #使用的Mapper文件位置
  typeAliasesPackage: com.liusl.model           #它一般对应我们的实体类所在的包,这个时候会自动简单类名作为包括包名的别名取对应包中不包括包名的别名

以一个User.java举例

package com.liusl.model;

/**
 * created by l1 on 2017/12/21.
 */
public class User {
    private Integer id;
    private String name;
    private String sex;
    private Integer age;

    public User(){
        super();
    }
    public User(String name,String sex,Integer age){
        super();
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

创建UserMapper.xml(持久化类和数据库表的配置文件)
在application.yml文件中配置了文件的存储位置mapper/
向数据库中插入数据
namespace唯一,命名规则包名+xml文件去后缀(.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.liusl.mapper.UserMapper">
    <insert id="create" parameterType="com.liusl.model.User" useGeneratedKeys="true">
        INSERT INTO TB_USER(name,sex,age) VALUES (#{name},#{sex},#{age})
    </insert>
</mapper>

编写mapper接口(与UserMapper.xml对应)
传的参数是User类型

package com.liusl.mapper;

import com.liusl.model.User;
import org.apache.ibatis.annotations.Mapper;

/**
 * created by l1 on 2017/12/21.
 */
@Mapper
public interface UserMapper {
    public void create(User user);
}

编写service接口

package com.liusl.service;

import com.liusl.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * created by l1 on 2017/12/21.
 */
@Service
public interface UserService {
    public void create(User user);
}

实现该接口

package com.liusl.service;

import com.liusl.mapper.UserMapper;
import com.liusl.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * created by l1 on 2017/12/21.
 */
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper userMapper;
    @Override
    public void create(User user){
        userMapper.create(user);
    }
}

7、编写controller类

package com.liusl.controller;

import com.liusl.model.User;
import com.liusl.service.UserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * created by l1 on 2017/12/21.
 */
@RestController
@RequestMapping(value = "/user")
public class UserController {

//    private User user;//接受前台传的参数实体类

    @Autowired
    private UserServiceImpl userService;

    @RequestMapping(method = RequestMethod.POST)
    public Map create(@RequestParam("name") String name,
                      @RequestParam("sex") String sex,
                      @RequestParam("age") Integer age){
        User user = new User(name,sex,age);
        userService.create(user);
        Map response = new HashMap<String,String>();
        response.put("response","success");
        return response;
    }
}

8、启动服务,测试
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值