SpringBoot简单整合Mybatis

前言

虽然之前跟着别人的视频做了一个SpringBoot的一个小项目,但是一直不太明白怎么将SpringBoot和Mybatis整合在一起,所以,今天花了一点时间用他们做了一个demo,并作了以下的总结,帮助自己更好的掌握好他们的使用.

项目搭建

创建项目

  • 新建一个Spring Initializr项目
  • 创建项目的文件结构以及jdk的版本

    此demo选择的JDK版本为1.8

  • 选择项目所需要的依赖

    在WEB里面选择”Spring Web Starter”
    在SQL里面选择”Mysql Driver” “JDBC API” “Mybatis Framework”
    在Developer Tools里面选择”Lombok”

  • 完成项目创建

数据库准备

1 create table user
2 (
3     id INTEGER auto_increment,
4     user_name varchar(30) not null,
5     password varchar(30) not null,
6     constraint user_pk
7         primary key (id)
8 );

项目构建

  • entity类

package com.example.entity;

import lombok.Data;

@Data
public class User {
    private Integer id;
    private String userName;
    private String password;
}

原本需要写get\set方法,但是由于使用了lombok下的@Data,再在IDEA中引入一个插件即可便捷管理实体类,不需要繁琐的get\set\toString方法.
插件的安装只需要正在IDEA的设置里面搜索”lombok”即可.

  • Controller类
package com.example.controller;

import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/userController")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("getUser/{id}")
    public String getUser(@PathVariable int id) {
        String user = userService.selectUserById(id).toString();
        return user;
    }
}

通过RequestMapping访问我们控制类中的方法,得到传入id对应的User对象的值.所以,我们就需要定义一个UserService来实现查找的方法.

  • Service类
package com.example.service;

import com.example.entity.User;
import com.example.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User selectUserById(int id) {
        return userMapper.selectUserById(id);
    }
}

在Service类中,通过Mapper映射的方式,调用Mapper里的接口,而在Mapper接口里面,我们完成和Mybatis的结合.

  • Mapper接口 和 Mapper.xml
package com.example.mapper;

import com.example.entity.User;
import org.springframework.stereotype.Repository;

@Repository
public interface UserMapper {
    User selectUserById(int id);
}

此接口和xml文件里面相互对应,使用mybatis简化以往JDBC对数据库的操作,只需要在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.mapper.UserMapper">
    <resultMap id="BaseResultMap" type="com.example.entity.User">
        <result column="id" jdbcType="INTEGER" property="id" />
        <result column="user_name" jdbcType="VARCHAR" property="userName" />
        <result column="password" jdbcType="VARCHAR" property="password" />
    </resultMap>
    <select id="selectUserById" resultMap="BaseResultMap">
        select * from user where id = #{id}
    </select>
</mapper>

在mapper的xml文件中需要注意namespace要和mapper接口相对应,sql语句的id要和mapper接口中的方法相对应,以及ResultMap里面column要和数据库中表的列名相对应.

  • application配置文件
server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mybatis_user?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: password
mybatis:
  mapper-locations: classpath:mapping/*Mapper.xml
  type-aliases-package: com.example.entity

在以上过程中,即可根据需要配置application文件,此项目使用application.yml作为配置文件.

  • server.port:表示项目运行在本地的8080端口.
  • spring.datasource.*:表示连接数据库的配置
  • mybatis:对mybatis的实体类,xml租借进行声明,让xml和mapper接口能对应起来

项目运行

在springboot运行文件上加个@MapperScan(“com.example.mapper”)给出mapper接口的访问路径,可以让springboot能扫描到mapper接口.

最后在访问链接 http://127.0.0.1:8080/userController/getUser/1 即可实现.在网页页面显示user对象的数据内容

原文地址:https://www.cnblogs.com/guming1125/p/11351074.html

时间: 2024-09-29 22:37:06

SpringBoot简单整合Mybatis的相关文章

SpringBoot2.0之四 简单整合MyBatis

从最开始的SSH(Struts+Spring+Hibernate),到后来的SMM(SpringMVC+Spring+MyBatis),到目前的S(SpringBoot),随着框架的不断更新换代,也为我们广大的程序猿提供了更多的方便,一起搭建一个从控制层到持久层的项目可能需要一两天的时间,但是采用SpringBoot的方式,我们可能只需要10分钟就能轻松完成一个web项目的搭建,下面我们介绍一下SpringBoot2.0整合MyBatis的方法 一.新建一个项目,引入相关依赖 <!-- 单元测试

【springboot】整合 MyBatis

转自:https://blog.csdn.net/cp026la/article/details/86493503 1. 简介: 目前,国内大部分公司都使用 MyBatis作为持久层框架.本章整合MyBatis,在上一章的基础上进行扩展.废话少说,直接上代码. 2. pom 主要依赖如下: <dependencies> <!-- Spring Boot Web 依赖 --> <dependency> <groupId>org.springframework.

SpringBoot之整合MyBatis

今天了解一下SpringBoot如何与我们最常用的ORM框架Mybatis整合. 一. 需要在pom.xml文件里加入mybatis的依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version></depen

玩转SpringBoot之整合Mybatis拦截器对数据库水平分表

利用Mybatis拦截器对数据库水平分表 需求描述 当数据量比较多时,放在一个表中的时候会影响查询效率:或者数据的时效性只是当月有效的时候:这时我们就会涉及到数据库的分表操作了.当然,你也可以使用比较完善的第三方组件:sharding-jdbc来实现:但是你使用后会发现,貌似对oracle的兼容性不是很好.所以最后我还是决定使用Mybatis拦截器对数据库进行水平分表. 为什么要选用Mybatis拦截器 拦截器:我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可

springBoot 整合 mybatis+Oracle

现在比较流行的操作数据库操作层框架Mybatis,下面我们就来看看Springboot如何整合mybatis, 之前一直在用xml形式写sql,这次依然用xml的方式感觉这种还是比较灵活方便. 添加mybatis关键就是要引入mybatis-spring-boot-starter到pom文件中,如果你用MySQL,那就引入MySQL的pom文件,这里我用Oracle,淡然要引入Oracle的依赖了.添加完成mybatis和Oracle 在pom.xml 文件中的引入. <!-- 链接Oracle

SpringBootSecurity学习(08)网页版登录整合MyBatis

创建数据库 前面介绍了springboot-security整合jdbc从数据库中查询用户的方式,适用性有限,下面介绍最常用的整合MyBatis,这种在开发和生产环境中是最常用,也是最实用的.首先需要创建数据库表,我们来创建三张表,分别是用户表,角色表,还有用户角色表,首先看用户表: 只有三个字段,具体业务中需要几个字段完全由我们自己设计.密码是admin,是加密的,后面的配置中会看到加密方式,与前面介绍的在内存中配置默认用户的方式类似.下面看角色表: 注意每个角色名字的前面都加了一个ROLE_

springboot(三).springboot用最简单的方式整合mybatis

 Springboot整合mybatis 在众多的orm框架中,我使用最多的,最习惯的,也是目前使用最广泛的就是mybatis,接下来我们就去将springboot整合mybatis 对于springboot整合mybatis有好几种方法,在这里我们使用最简单,最方便的一种整合方式 在pom中添加以下依赖 在application.properties 中增加以下配置 #数据库连接本地 spring.datasource.url=jdbc:mysql://localhost:3306/sprin

最简单的SpringBoot整合MyBatis教程

本文就来看看在Spring Boot中MyBatis要如何使用. 工程创建 首先创建一个基本的Spring Boot工程,添加Web依赖,MyBatis依赖以及MySQL驱动依赖,如下:最简单的SpringBoot整合MyBatis教程创建成功后,添加Druid依赖,并且锁定MySQL驱动版本,完整的依赖如下: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-

SpringBoot整合MYBATIS,多数据源,事务,支持JAVA -JAR 启动.

用了一段时间SpringBoot,之前配置MYBATIS ,在打包WAR 放到tomcat下正常,但是WAR已经过时了,现在流行直接打包JAR 丢到DOCKER 里,无奈JAR 启动的时候MAPPER 扫描有问题,只能说之前整合MYBATIS 的方式不对. 这次的整合应该是不存在加载顺序引起的问题,使用了一段时间,妥妥的,记录下来 pom.xml <parent> <groupId>org.springframework.boot</groupId> <artif