SpringBoot+Mybatis整合入门(一)

SpringBoot+Mybatis 四步整合

第一步 添加依赖

springBoot+Mybatis相关依赖

    <!--springBoot相关-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>

    <!--约定版本-->
    <properties>
        <mybatis-spring-boot>1.2.0</mybatis-spring-boot>
        <mysql-connector>5.1.39</mysql-connector>
    </properties>

    <dependencies>
        <!--springBoot相关-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--mybatis相关-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis-spring-boot}</version>
        </dependency>

        <!--mysql驱动相关-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>

        <!--pojo实用小插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <!--依赖不传递-->
            <optional>true</optional>
        </dependency>
    </dependencies>

第二步 配置文件 (src/main/resources/application.yml)

server:
  # 服务端口
  port: 8081

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/springcloud-mybatis
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver

# Mybatis 配置
mybatis:
  typeAliasesPackage: com.fame.entity
  mapperLocations: classpath:mapper/*.xml

# 打印sql
logging:
  level:
     # 配置mapper接口的包路径
     com.fame.mapper : debug

第三步 创建Mybatis Mapper接口、Mapper.xml 以及 Entity

Mapper接口

public interface UserMapper {

    /**
     * 用户列表查询
     *
     * @return 用户信息列表
     */
    List<User> findAll();

    /**
     * 新增用户信息
     *
     * @param user 用户信息
     */
    void add(User user);

    /**
     * 通过ID获取用户信息
     *
     * @param id 用户ID
     * @return 用户信息
     */
    User get(Long id);

    /**
     * 修改用户信息
     *
     * @param user 用户信息
     */
    void update(User user);

    /**
     * 删除用户信息
     *
     * @param id 用户ID
     */
    void delete(long id);
}

UserMapper.xml(src/main/resources/mapper/UserMapper.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.fame.mapper.UserMapper">
    <resultMap id="BaseResultMap" type="com.fame.entity.User">
        <id column="id" property="id" jdbcType="BIGINT"/>
        <result column="age" property="age" jdbcType="INTEGER"/>
        <result column="password" property="password" jdbcType="VARCHAR"/>
        <result column="username" property="username" jdbcType="VARCHAR"/>
    </resultMap>

    <sql id="Base_Column_List">
    id, age, password, username
  </sql>
    <insert id="add" parameterType="com.fame.entity.User">
        INSERT INTO sys_user(
            <if test="id != null and id != '' ">id,</if>
            <if test="age != null and age != ''">age,</if>
            <if test="password != null and password != ''">password,</if>
            <if test="username != null and username != ''">username</if>
        )VALUES (
            <if test="id != null and id != '' ">#{id},</if>
            <if test="age != null and age != ''">#{age},</if>
            <if test="password != null and password != ''">#{password},</if>
            <if test="username != null and username != ''">#{username}</if>
        )
    </insert>

    <update id="update" parameterType="com.fame.entity.User">
        UPDATE sys_user
        <set>
            <if test="age != null and age != '' ">age = #{age},</if>
            <if test="password != null and password != ''">password = #{password},</if>
            <if test="username != null and username != ''">username = #{username}</if>
        </set>
        WHERE id = #{id}
    </update>

    <delete id="delete" parameterType="java.lang.Long">
        DELETE FROM sys_user WHERE id = #{id}
    </delete>

    <select id="findAll" resultMap="BaseResultMap" parameterType="com.fame.entity.User">
        SELECT
        <include refid="Base_Column_List"/>
        FROM sys_user
    </select>

    <select id="get" parameterType="java.lang.Long" resultMap="BaseResultMap">
        SELECT
        <include refid="Base_Column_List"/>
        FROM sys_user
        WHERE id = #{id}
    </select>

</mapper>

Entity

@Data
// 开启链式编程
@Accessors(chain = true)
public class User implements Serializable {
    private static final long serialVersionUID = -6510879035056033993L;

    private Long id;
    private Integer age;
    private String password;
    private String username;
}

第四步 创建Application启动类

如果是直接创建springboot项目可忽略这一步,我是直接创建的一个Maven项目进行整合。

注意:加入注解@MapperScan进行mapper接口扫描

@SpringBootApplication
// mapper 接口类扫描包配置
@MapperScan("com.fame.mapper")
public class MybatisApplication {
    public static void main(String[] args) {
        SpringApplication.run(MybatisApplication.class, args);
    }
}

这样就整合完成,可以创建接口进行单元测试了

UserController

@RequestMapping("/user")
@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    /**
     * 查询用户列表
     */
    @GetMapping("/list")
    public List<User> list() {
        List<User> userList = userMapper.findAll();
        System.out.println(userList);
        return userList;
    }

    /**
     * 通过ID获取用户信息
     */
    @GetMapping("/get")
    public User get() {
        return userMapper.get(8L);
    }

    /**
     * 新增用户信息
     */
    @PostMapping("/add")
    public void add() {
        User user = new User().setUsername("大白一号").setPassword("dabaiyihao").setAge(22);
        userMapper.add(user);
    }

    /**
     * 修改用户信息
     */
    @PutMapping("/update")
    public void update() {
        User user = userMapper.get(1L);
        user.setUsername("大白修改操作");
        userMapper.update(user);
    }

    /**
     * 删除用户信息
     */
    @DeleteMapping("/delete")
    public void delete() {
        userMapper.delete(9L);
    }

}

原文地址:https://www.cnblogs.com/yoci/p/10717613.html

时间: 2024-08-03 09:38:32

SpringBoot+Mybatis整合入门(一)的相关文章

springBoot+SpringData 整合入门

SpringData概述 SpringData :Spring的一个子项目.用于简化数据库访问,支持NoSQL和关系数据存储.其主要目标是使用数据库的访问变得方便快捷. SpringData 项目所支持NoSQL存储: MongoDB(文档数据库) Neo4j(图形数据库) Redis(键/值存储) Hbase(列族数据库) SpringData 项目所支持的关系数据存储技术: JDBC JPA Spring Data : 致力于减少数据访问层 (DAO) 的开发量. 开发者唯一要做的,就只是声

spring-boot+mybatis整合简写

spring与mybatis整合,代码将变得非常优雅! 主要使用的jar包是mybatis-spring-boot-starter.jar,其maven依赖如下,加入到pom.xml文件中 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1&

springboot+mybatis整合——基础版

我用的事IDEA,jdk版本是1.7.新建项目的时候这个地方的选择需要注意一下,springboot版本是1.5的,否则不支持1.7的jdk pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency&

9、SpringBoot+Mybatis整合------动态sql

开发工具:STS 前言: mybatis框架中最具特色的便是sql语句中的自定义,而动态sql的使用又使整个框架更加灵活. 动态sql中的语法: where标签 if标签 trim标签 set标签 switch\when标签 foreach标签 一.搭建项目 1.创建用户表: 2.添加实体: 1 package com.xm.pojo; 2 /** 3 * 用户实体 4 * @author xm 5 * 6 */ 7 public class User { 8 9 private int id;

springboot/Mybatis整合

正题 本项目使用的环境: 开发工具:Intellij IDEA 2017.1.3 springboot: 1.5.6 jdk:1.8.0_161 maven:3.3.9 额外功能 PageHelper 分页插件 mybatis generator 自动生成代码插件 步骤: 1.创建一个springboot项目: 2.创建项目的文件结构以及jdk的版本 3.选择项目所需要的依赖 然后点击finish 5.看一下文件的结构: 6.查看一下pom.xml: <?xml version="1.0&

Maven+SpringMVC+Mybatis整合入门Demo

1 数据库准备 (1)建立一个名为mytest的数据库 (2)创建表 [plain] view plain copy CREATE TABLE `t_user` ( `USER_ID` int(11) NOT NULL AUTO_INCREMENT, `USER_NAME` char(30) NOT NULL, `USER_PASSWORD` char(10) NOT NULL, PRIMARY KEY (`USER_ID`), KEY `IDX_NAME` (`USER_NAME`) )ENG

3、SpringBoot+Mybatis整合------主键回填

开发工具:STS 代码下载链接:https://github.com/theIndoorTrain/SpringBoot_Mybatis01/tree/d68efe51774fc4d96e5c6870786eb3f1a1a5b629 前言: 当我们插入一个一对一.一对多.多对多的关系数据时,往往需要分表插入,那么我们可能需要获取自动生成的主键用于后面的插入操作,因此今天来介绍下mybatis里的主键回填. 一.代码实现: 1.数据操作层接口mapper: 1 package com.xm.map

springboot mybatis 整合

新建项目在上一篇. 第二步:创建表和相应的实体类 实体类:user.java package com.qtt.im.entity; import java.io.Serializable; public class User implements Serializable { private Long id; private String loginName; private String pass; private String mobile; private String email; pr

springboot+mybatis+springmvc整合实例

以往的ssm框架整合通常有两种形式,一种是xml形式,一种是注解形式,不管是xml还是注解,基本都会有一大堆xml标签配置,其中有很多重复性的.springboot带给我们的恰恰是"零配置","零配置"不等于什么也不配置,只是说相对于传统的ssm框架的xml配置或是注解配置,要少的多.作为常规的来说,一个ssm框架整合,拿maven来说,首先在src/main/resource下加入jdbc.properties,spring-mvc.xml,spring-myba