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日

相关文章

  • java实现基于UDP协议的聊天小程序操作

    Java实现基于UDP协议的聊天小程序操作攻略 本攻略将介绍如何使用Java语言实现基于UDP协议的聊天小程序操作,包括构建UDP数据报文,实现消息的发送和接收等。 步骤一、创建UDP通信 首先,需要创建UDP通信的Socket,使用Java自带的DatagramSocket类即可。代码如下: DatagramSocket socket = new Data…

    Java 2023年5月23日
    00
  • 从零开始让你的Spring Boot项目跑在Linux服务器

    首先我们来讲解“从零开始让你的Spring Boot项目跑在Linux服务器”的攻略。 准备工作 在将Spring Boot项目跑在Linux服务器之前,需要先确保我们已经满足以下条件: 已经有一台Linux服务器,并且可以通过SSH连接; 已经安装好Java Runtime Environment(JRE); 已经下载好我们的Spring Boot项目并打…

    Java 2023年5月19日
    00
  • Java中关键字synchronized的使用方法详解

    下面我将详细讲解 Java 中关键字 synchronized 的使用方法。 什么是 synchronized synchronized 是 Java 中的关键字,用来保证线程安全。 在 Java 中,当多个线程访问同一资源时,如果没有对这个资源加锁,可能会发生数据不一致的情况。而使用 synchronized 关键字可以保证在同一时刻只有一个线程可以访问一…

    Java 2023年5月26日
    00
  • Java Socket实现聊天室附1500行源代码

    Java Socket实现聊天室是一种常见的网络应用程序,该应用程序使用Socket API实现了客户端和服务器端之间的连接。本攻略通过讲解如何使用Java Socket API实现一个聊天室,来帮助开发者了解Java Socket编程的基本原理和用法。 概述 Java Socket API是Java语言提供的一个用于网络通信的API,它允许程序员使用Soc…

    Java 2023年5月24日
    00
  • Java实战之酒店人事管理系统的实现

    Java实战之酒店人事管理系统的实现 介绍 本篇攻略将详细介绍如何使用Java语言实现一个酒店人事管理系统。该系统主要功能包括员工信息的录入、查询、修改和删除,以及工资和考勤等数据的统计。开发该系统需要掌握Java语言、MySQL数据库和Java GUI编程等技术。 准备工作 在开始开发之前,需要完成以下准备工作: 安装JDK和Eclipse IDE。 安装…

    Java 2023年6月16日
    00
  • JSON简介以及用法汇总

    JSON简介 JSON的全称是JavaScript Object Notation,它是一种轻量级的数据交换格式。JSON的特点是易于理解、易于阅读、易于编写、易于解析、易于生成。JSON适用于数据传输和存储,常见于Web应用中与客户端和服务端之间的数据交互。 JSON用法汇总 JSON语法: JSON由两种结构组成: 键值对:一组“键/值”对,使用英文冒号…

    Java 2023年5月26日
    00
  • 剑指Offer之Java算法习题精讲链表专题篇

    这篇文章主要是讲解《剑指Offer》中链表专题的相关算法习题的解法,并使用Java语言实现。其中包括链表的基本操作、链表的快慢指针应用、链表的反转、链表的合并等。接下来,我将从以下几个方面逐一介绍该篇文章的内容。 标题 文章的每一部分都应该用适当的标题进行标识,方便读者阅读和理解。 代码块 在介绍算法的过程中,应该包含合适的代码块,以便读者更加清晰地理解算法…

    Java 2023年5月19日
    00
  • IDEA2022性能优化的一些设置技巧

    IDEA2022性能优化的一些设置技巧 1. 开启IDEA的内存优化 默认情况下,IDEA分配的内存大小为128M,这个内存对于一些大型项目来说,显然是远远不够的。我们可以将内存设置为512M或者更高,以提高IDEA的性能。 要修改IDEA的内存设置,可以通过以下步骤操作: 打开IDEA,选择Help -> Edit Custom VM Options…

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