Springboot通用mapper和mybatis-generator代码示例

下面是关于“Springboot通用mapper和mybatis-generator代码示例”的完整攻略:

一、什么是Springboot通用mapper和mybatis-generator

1. Springboot通用mapper

Springboot通用mapper是一款能够提高数据访问的工具,主要用于深度整合Mybatis和Spring Data JPA两个持久层框架,帮助实现DAO层的消融。

通俗来讲,Springboot通用mapper是一款简化Mybatis操作的插件,能够自动生成Mapper的CRUD代码,从而减少我们手写Mapper的工作量。同时,它兼容Mybatis和JPA两种ORM框架。

2. Mybatis-generator

Mybatis-generator是一款自动化生成Mybatis代码的工具,能够自动生成包括Mapper、Model、XML等文件,大大提高了开发效率和代码质量。

二、如何使用Springboot通用mapper和mybatis-generator

在使用Springboot通用mapper和mybatis-generator之前,我们需要先按照以下步骤进行配置。

1. 引入依赖

在项目的pom.xml文件中引入如下依赖:

<!--Springboot通用mapper-->
<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>2.1.5</version>
</dependency>

<!-- Mybatis-generator-->
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.7</version>
</dependency>

2. 配置属性

application.properties文件中配置如下属性:

# Springboot通用mapper
mapper.mappers=tk.mybatis.mapper.common.Mapper
mapper.not-empty=false
mapper.identity=MYSQL

# Mybatis-generator
mybatis.generator.configuration=mybatis-generator.xml

3. 配置生成器

在项目中创建mybatis-generator.xml文件,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <context id="MySql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <!--数据库连接信息-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf-8"
                        userId="root"
                        password="root">
        </jdbcConnection>

        <!--Java Model生成目录-->
        <javaModelGenerator targetPackage="com.example.demo.model" targetProject="src/main/java">
            <!-- 是否清除已有的生成目录,默认为false -->
            <property name="enableSubPackages" value="true"/>
            <!-- 是否针对string类型的字段,在set/get方法中进行trim()操作,默认为false -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!--Mapper.xml生成目录-->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
        </sqlMapGenerator>

        <!--Mapper接口生成目录-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!--表定义,#{}表示参数替换,${}表示表名替换-->
        <table catalog="test" schema="test" tableName="t_user" domainObjectName="User" enableCountByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false" enableUpdateByExample="false">
        </table>

    </context>
</generatorConfiguration>

其中,com.example.demo为项目所在包名,t_user为数据库表名,UserJava模型类名。

4. 编写代码

现在,我们可以开始使用Springboot通用mapper和mybatis-generator自动生成Mapper的CRUD代码了。

示例1:使用Springboot通用mapper实现数据查询

创建Mapper文件:

import com.example.demo.model.User;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper;

public interface UserMapper extends Mapper<User> {
    @Select("SELECT * FROM t_user WHERE username = #{username} AND password = #{password}")
    User findByUsernameAndPassword(String username, String password);
}

引入Mapper并调用:

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

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

    public User findByUsernameAndPassword(String username, String password) {
        return userMapper.findByUsernameAndPassword(username, password);
    }
}

示例2:使用mybatis-generator自动生成Mapper的CRUD代码

通过运行Mybatis-generator自动生成Mapper的CRUD代码:

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

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

    public void save(User user) {
        userMapper.insert(user);
    }

    public User findById(Long id) {
        return userMapper.selectByPrimaryKey(id);
    }

    public void update(User user) {
        userMapper.updateByPrimaryKey(user);
    }

    public void delete(Long id) {
        userMapper.deleteByPrimaryKey(id);
    }
}

三、总结

以上就是关于“Springboot通用mapper和mybatis-generator代码示例”的完整攻略,我们可以通过它们自动生成Mapper的CRUD代码,从而减少我们手写Mapper的工作量。同时,这两个工具同时也提高了我们的开发效率和代码质量。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot通用mapper和mybatis-generator代码示例 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java7 新I/O知识点详解

    Java7 新 I/O 知识点详解 介绍 Java7 引入了一些新的 I/O(输入输出)特性,主要是为了优化文件 I/O 操作,使之更加高效和灵活。其中主要包括以下几个方面: 支持异步 I/O 操作的 NIO API 支持读取和写入字符串的 NIO API 自动资源管理(ARM)特性,即 try-with-resources 操作 文件系统的改进 下面将分别…

    Java 2023年5月24日
    00
  • 使用Java实现先查询缓存再查询数据库

    使用Java实现先查询缓存再查询数据库是一种常见的性能优化策略,可以在查询速度较慢的情况下减少对数据库的直接访问,大大提高程序性能。以下是实现步骤: 设计缓存结构和存储方式 缓存结构可以选择常用的Map、List等集合类型。存储方式有多种,可以使用内存缓存、redis等缓存中间件等方式。 查询缓存 在查询数据库之前,先尝试从缓存中查询对应的数据。如果查询到,…

    Java 2023年5月20日
    00
  • Java日期与时间类原理解析

    Java日期与时间类原理解析 介绍 Java日期与时间类是Java标准库中的一个重要组成部分,它提供了一系列的类和方法,用于处理日期、时间和时间区域相关的问题。在Java程序开发中,日期和时间是必不可少的数据类型,因此学习Java日期与时间类是非常重要的。 本文将介绍Java日期与时间类的原理和使用,包括常用类:Date、DateFormat、SimpleD…

    Java 2023年5月20日
    00
  • 实例讲解Java读取一般文本文件和word文档的方法

    让我来为大家详细讲解一下实例讲解Java读取一般文本文件和word文档的方法。 1. 读取一般文本文件 Java读取一般文本文件的方式很简单,可以使用File类和Scanner类。 1.1 使用File类读取文本文件 参照以下代码: import java.io.BufferedReader; import java.io.FileReader; impor…

    Java 2023年5月19日
    00
  • Java 异步线程监听与结果回调及异常捕获总结分析

    Java 异步线程监听与结果回调及异常捕获总结分析 在Java中,异步编程是一种处理高并发场景的重要手段,其中线程监听与结果回调的机制尤其重要。本文将详细探讨Java异步线程监听与结果回调及异常捕获的实现方式和优点。 异步线程监听的实现方式 在Java中,实现异步线程监听的方式有两种:使用回调函数或者使用Future。 1. 回调函数实现异步线程监听 所谓回…

    Java 2023年5月27日
    00
  • 全方位讲解Java的面向对象编程思想

    全方位讲解Java的面向对象编程思想 一、什么是面向对象编程思想 面向对象编程思想(Object Oriented Programming, OOP)是一种编程范式,它将数据和操作数据的方法打包在一起,通过封装、继承、多态等特性,使得程序更具有可重用性、可维护性、可扩展性。 在Java中,一切皆对象,Java程序也是由对象组成的。面向对象编程思想是Java的…

    Java 2023年5月26日
    00
  • Spring Security安全框架之记住我功能

    下面我将详细介绍“Spring Security安全框架之记住我功能”的完整攻略,包括步骤、关键代码和示例。希望能够对您有所帮助。 步骤 导入相关依赖:在pom.xml文件中添加以下依赖: <dependency> <groupId>org.springframework.security</groupId> <ar…

    Java 2023年5月20日
    00
  • jQuery老黄历完整实现方法

    jQuery老黄历完整实现方法 简介 jQuery老黄历是一款对于时间的格式化呈现的插件,可以生成比较形象化的日期解释,比如”今天是个好日子,宜开发,宜部署”。 完整实现方法 要实现jQuery老黄历的功能,需要完成以下步骤: 步骤1:引入jQuery和老黄历脚本 首先,需要在HTML文件的<head>标签内引入jQuery和老黄历的脚本: &l…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部